C#中的2个参数没有编译

A.Q*_*oga 1 c# overloading params

我正在尝试这样做:

public void CustomMethod(params int[] number,params string[] names)
{
...
}
Run Code Online (Sandbox Code Playgroud)

如果我删除其中一个,没有问题,任何想法为什么我不能这样做?

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

Mar*_*ers 11

只有最后一个参数可以有params.请参阅文档.

在方法声明中的params关键字之后不允许使用其他参数,并且在方法声明中只允许使用一个params关键字.

原因是允许多个参数会产生歧义.例如,这意味着什么?

public void CustomMethod(params int[] foo, params int[] bar)
{
    ...
}

// ...

CustomMethod(1, 2);
Run Code Online (Sandbox Code Playgroud)