我正在尝试这样做:
public void CustomMethod(params int[] number,params string[] names)
{
...
}
如果我删除其中一个,没有问题,不知道为什么我不能这样做?
我尝试在两者的中间放置一个普通的参数。
答案 0 :(得分:11)
只有最后一个参数才能有params
。请参阅documentation。
方法声明中的params关键字后不允许使用其他参数,并且方法声明中只允许使用一个params关键字。
原因是允许多个参数会产生歧义。例如,这意味着什么?
public void CustomMethod(params int[] foo, params int[] bar)
{
...
}
// ...
CustomMethod(1, 2);
答案 1 :(得分:3)
这根本不受支持。编译器无法知道一个参数列表何时结束而下一个参数列表何时开始。
答案 2 :(得分:0)
据我所知,你只能在构造函数中写一个params参数,它应该是构造函数的最后一个参数。
答案 3 :(得分:0)
params关键字允许您指定一个方法参数,该参数采用参数数量可变的参数。
方法声明中的params关键字后不允许使用其他参数,并且方法声明中只允许使用一个params关键字。
见这里:http://msdn.microsoft.com/en-us/library/w5zay9db(v=VS.71).aspx