2012-03-21 60 views
1

我試圖做到這一點:2 PARAMS在C#編譯不

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

如果我刪除其中的一個,有沒有問題,爲什麼我不能做到這一點任何想法?

我試圖把一個正常的parametre在兩者中間。只有

回答

11

的最後一個參數可以有params。請參閱documentation

無附加參數在方法聲明的params關鍵字之後是允許的,並且僅一個params關鍵字在方法聲明是允許的。

的原因是,允許多個PARAMS會給模棱兩可。例如,這是什麼意思?

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

// ... 

CustomMethod(1, 2); 
+0

我明白了,謝謝你快速解決所有。 – 2012-03-21 09:45:24

3

這根本不被支持。編譯器無法知道一個參數列表何時結束,下一個開始。

0

據我所知,你只能在這應是在構造函數的最後一個參數構造函數寫一個PARAMS參數。

0

的params關鍵字可以指定需要一個參數,其中參數的數目是可變的方法的參數。

無附加參數在方法聲明的params關鍵字之後是允許的,並且僅一個params關鍵字在方法聲明是允許的。

在這裏看到:http://msdn.microsoft.com/en-us/library/w5zay9db(v=VS.71).aspx