C#中有2个参数未编译

本文关键字:编译 参数 2个 中有 | 更新日期: 2023-09-27 18:28:33

我正在尝试这样做:

public void CustomMethod(params int[] number,params string[] names)
{
...
}

如果我删除其中一个,就没有问题了,你知道我为什么不能这样做吗?

我试着把一个正常的参数放在两者的中间。

C#中有2个参数未编译

只有最后一个参数可以具有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