試煉4 - 用過 default 和 params 嗎

2022 鐵人賽文 搬回點部落

開始試煉

default 關鍵字

就是回傳該型別的預設值

int a = default;
a.Dump();
string b = default;
b.Dump();

執行結果為
0
null

那 DateTime c = default;
c會是怎樣呢 不清楚的話請自己執行看看

來看看應用面
public SuccessResultDto(T value = default,string errorMessage = default)
泛型T的參數預設值 就非常適合用default (或者只能用default)

另一種使用方式為
return default(T);
也是泛型方法要預設回傳時 就可以這樣用

params 參數陣列

我看過這樣的程式碼 就是不認識 params

void Demo(int a) {}
void Demo(int a,int b) {}
void Demo(int a,int b,int c) {}

其實params就是用在這樣的情況

void Main()
{
    Demo(1)
    Demo(1,2)
    Demo(1,2,3)
}
void Demo(params int[] a) {}

這樣不管怎樣有幾個參數都會變成 參數陣列
注意事項

  • 必須是一維陣列
  • params 關鍵字後面不允許任何其他參數
  • 方法宣告中只允許一個 params 關鍵

延伸試煉

實戰專案上怎麼用default
SimplCommerce 的 ExtendableObjectExtensions.cs

結束試煉

default 和 params 其實沒有很難 只是怕不知道而已

參考
預設值運算式 (C# 參考)
params (C# 參考)

如果內容有誤請多鞭策謝謝