C#中有2个参数未编译
本文关键字:编译 参数 2个 中有 | 更新日期: 2023-09-27 18:28:33
我正在尝试这样做:
public void CustomMethod(params int[] number,params string[] names)
{
...
}
如果我删除其中一个,就没有问题了,你知道我为什么不能这样做吗?
我试着把一个正常的参数放在两者的中间。
只有最后一个参数可以具有params
。请参阅文档。
方法声明中的params关键字之后不允许有其他参数,并且方法声明中只允许有一个params关键字。
原因是允许多个参数会产生歧义。例如,这意味着什么?
public void CustomMethod(params int[] foo, params int[] bar)
{
...
}
// ...
CustomMethod(1, 2);
这根本不受支持。编译器无法知道一个参数列表何时结束,下一个何时开始。
据我所知,你只能在构造函数中写一个params参数,这应该是构造函数的最后一个参数。
params关键字允许您指定一个方法参数,该参数接受一个参数,其中参数的数量是可变的。
方法声明中的params关键字之后不允许有其他参数,并且方法声明中只允许有一个params关键字。
请参见此处:http://msdn.microsoft.com/en-us/library/w5zay9db(v=VS.71).aspx