使用參數數組的注意事項:
1. 只能在一維數組上使用params關鍵字。
2. 不能重載一個只基於params關鍵字的方法。params關鍵字不構成方法的簽名的一部分。
如:
//編譯時錯誤:重復訪問
public static int Min(int [] paramList)
.............
public static int Min(params int [] paramList)
.............
3. 不允許ref或out params數組
//編譯時錯誤
public static int Min(ref params int [] paramList)
.............
public static int Min(out params int [] paramList)
.............
4. params 數組必須是方法的最后一個參數(也就是只能有一個params數組參數)
public static int Min(params int [] paramList,int i)
.............
5. 編譯器會檢查並拒絕任何可能有歧義的重載
6. 非params方法總是優先於一個params方法。也就是說,如果願意,仍然可以為普通情況創建一個方法的重載版本,
如: public static int Min(int leftHandSide,int rightHandSide) 優於: public static int Min(params int [] paramList) using System; public class MyClass { public static void UseParams(params int[] list) { for (int i = 0; i < list.Length; i++) { Console.WriteLine(list[i]); } Console.WriteLine(); } public static void UseParams2(params object[] list) { for (int i = 0; i < list.Length; i++) { Console.WriteLine(list[i]); } Console.WriteLine(); } static void Main() { UseParams(1, 2, 3); UseParams2(1, 'a', "test"); An array of objects can also be passed, as long as the array type matches the method being called. int[] myarray = new int[3] { 10, 11, 12 }; UseParams(myarray); } } 程序的輸出結果如下: 1 2 3 1 a test 10 11 12