"選擇性參數( Optional Parameters )",顧名思義就是傳參數給 method 時,想要選擇性填入
未傳的參數就是以預設值代入
"選擇性參數( Optional Parameters )",顧名思義就是傳參數給 method 時,想要選擇性填入
未傳的參數就是以預設值代入,如下:
public void test(int i, string str = "123")
{
Message.Show(str);
}
這樣在呼叫 test 這個 Method 時,就可以只打 test(5);
視情況決定是否輸入 str 參數
使用的時候要注意以下幾點:
1.選擇性參數必須放在必要性參數後面
2.選擇性參數必須是 compile time constant
如下例會顯示 Default parameter value for 'str' must be a compile-time constant :
private static str123 = "123";
private void test(int i, string str = str123)
{
}
(因為如此,所以我沒有辦法將 MethodInfo 弄成選擇性參數...?)
3.和.Net Framework 的版本無關,而是和編譯器的版本有關,C# 從 4.0 版開始支援
即使目標是.Net Framework 2.0的框架,依然可以編譯成功
4.多載時的順序是:不用省略選擇性參數 > 不用轉型的函式
下面優先選取順序為由上而下:
public void test()
public void test(string str = "123")
public void test(object str = "123")
以上注意事項有參考 larrynung 大大和 Bill Chung 大大在技術論壇的答覆
特此感謝^^