[C#] params 基本介紹

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的參數是可以變動的,不用因為參數個數的不一樣而多載相同邏輯的程式。

使用規則

  1. params的參數必須要同一型別,整數就只能搭配整數,不能一個整數一個字串
  2. params的參數個數可0~n個
  3. params要搭配一個一維陣列來宣告
  4. params的參數必須要在參數中的最後一個,且只能一個

個人感想

之前沒什麼機會去使用到params,主要都是用List<>來代替。我個人覺得 params 與 List<> 合適的使用情境比較如下:

params:參數清單是程式碼 hard code 決定的

List<>:程式碼只是設定好條件,然後動態去獲取參數個數

參考資料

https://msdn.microsoft.com/zh-tw/library/w5zay9db.aspx