選擇性參數

  • 853
  • 0

"選擇性參數( 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 大大在技術論壇的答覆
特此感謝^^