我有一个EvoObject.cs
类,其构造函数定义为:
public class EvoObject
{
private Object _id;
private List<List<Int32>> _attributes;
public EvoObject(Object _id, params List<Int32> _args)
{
List<Int32> _attrib = new List<int>();
Debug.Assert(_args.Count >= 2, "Invalid attributes!");
this._id = _id;
_attributes = new List<List<Int32>>(_args.Count);
for (int _i = 0; _i < _args.Count; _i++)
{
_attrib.Add(_args[_i]);
}
_attributes.Add(_attrib);
}
}
我已经使用
params
接受可变数量的参数。现在我在另一个类中有另一个方法,该方法返回新的
EvoObject
为:return new EvoObject(_author, _coAuthors, _papers, _venues);
我想联系的
_author
与Object _id
_coAuthors
,_papers
,_venues
和params List<Int32> _args
在类
EvoObject.cs
的构造函数中,而_coAuthors
,_papers
和_venues
:都是类型为List<Int32>
的列表我在行上出错:
return new EvoObject(_author, _coAuthors, _papers, _venues);
即
EvoObject does not contains a constructor that takes 4 arguments
。params
在这里如何有用? 最佳答案
我相信您在方法签名中的列表声明中缺少[],以便将其声明为参数数组。
尝试public EvoObject(Object _id, params List<Int32>[] _args)
关于c# - 在类构造函数C#中传递可变数量的参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37415199/