如果可以的话,应该替换%PARAMS%
?
class ParentClass
{
public BaseClass( params int[] intList )
{ (...) }
}
class ChildClass : BaseClass
{
public ChildClass( params int[] intList ) : base( %PARAMS% )
{ (...) }
}
PS:对不起,如果是一个新手问题,我刚开始编写C#。
答案 0 :(得分:1)
尝试
public ChildClass( params int[] intList ) : base( intList )
见10.5.1.4 Parameter arrays(强调我的):
参数数组允许在方法调用中以两种方式之一指定参数:
- 为参数数组提供的参数可以是可隐式转换的类型的单个表达式(第6.1节)到参数数组类型。在这种情况下,参数数组的作用就像一个值参数。
- 或者,调用可以为参数数组指定零个或多个参数,其中每个参数是一个可隐式转换的类型的表达式(第6.1节)到参数数组的元素类型。在这种情况下,调用创建参数数组类型的实例,其长度对应于参数的数量,使用给定的参数值初始化数组实例的元素,并使用新创建的数组实例作为实际参数。 / LI>
所以如果有一个功能:
void Function(params int[] list) { }
可以用不同的方式调用它:
Function(0, 1, 2, 3);
Function(new int[] { 0, 1, 2, 3 });
var a = new int[] { 0, 1, 2, 3 };
Function(a);
ChildClass c = new ChildClass(1, 2, 3);
答案 1 :(得分:0)
这是否符合您的需求?
class ParentClass
{
public BaseClass( params int[] ints )
{ }
}
class ChildClass : BaseClass
{
public ChildClass( params int[] ints ) : base( ints )
{ }
}
或者这个:
class ParentClass
{
public BaseClass( IEnumerable<int> ints )
{ }
}
class ChildClass : BaseClass
{
public ChildClass( IEnumerable<int> ints ) : base( ints )
{ }
}