params 運用在 method 的參數區塊,讓原本固定的參數個數變為可變動。
範例
class Program
{
static void Main(string[] args)
{
Sum();
Sum(1, 2);
Sum(1, 2, 3);
Console.ReadKey();
}
private static void Sum (params int[] values)
{
Console.WriteLine(values.Sum().ToString());
}
}
由範例可以發現Sum的參數是可以變動的,不用因為參數個數的不一樣而多載相同邏輯的程式。
使用規則
- params的參數必須要同一型別,整數就只能搭配整數,不能一個整數一個字串
- params的參數個數可0~n個
- params要搭配一個一維陣列來宣告
- params的參數必須要在參數中的最後一個,且只能一個
個人感想
之前沒什麼機會去使用到params,主要都是用List<>來代替。我個人覺得 params 與 List<> 合適的使用情境比較如下:
params:參數清單是程式碼 hard code 決定的
List<>:程式碼只是設定好條件,然後動態去獲取參數個數
參考資料
https://msdn.microsoft.com/zh-tw/library/w5zay9db.aspx