PARAMS
params
允許方法引數接收可變數量的引數,即允許該引數為零,一個或多個引數。
static int AddAll(params int[] numbers)
{
int total = 0;
foreach (int number in numbers)
{
total += number;
}
return total;
}
現在可以使用典型的 int
引數列表或 int 陣列來呼叫此方法。
AddAll(5, 10, 15, 20); // 50
AddAll(new int[] { 5, 10, 15, 20 }); // 50
params
必須最多出現一次,如果使用,它必須在引數列表中的最後一個,即使後續型別與陣列的型別不同。
使用 params
關鍵字時過載函式時要小心。在嘗試使用 params
過載之前,C#更喜歡匹配更具體的過載。例如,如果你有兩種方法:
static double Add(params double[] numbers)
{
Console.WriteLine("Add with array of doubles");
double total = 0.0;
foreach (double number in numbers)
{
total += number;
}
return total;
}
static int Add(int a, int b)
{
Console.WriteLine("Add with 2 ints");
return a + b;
}
然後在嘗試 params
過載之前,特定的 2 引數過載將優先。
Add(2, 3); //prints "Add with 2 ints"
Add(2, 3.0); //prints "Add with array of doubles" (doubles are not ints)
Add(2, 3, 4); //prints "Add with array of doubles" (no 3 argument overload)