可選引數和命名引數

如果該引數是一個可選引數,我們可以省略呼叫中的引數每個可選引數都有自己的預設值如果我們不提供值,它將採用預設值一個可選引數的預設值必須是

  1. 不斷表達。
  2. 必須是值型別,例如 enum 或 struct。
  3. 必須是表單 default(valueType) 的表示式

必須在引數列表的末尾設定

具有預設值的方法引數:

public void ExampleMethod(int required, string optValue = "test", int optNum = 42)
{
    //...
}

正如 MSDN 所說,一個命名的論點,

允許你通過關聯引數的名稱將引數傳遞給函式。無需記住我們始終不知道的引數位置。無需檢視被呼叫函式的引數列表中的引數順序。我們可以通過名稱為每個引數指定引數。

命名引數:

// required = 3, optValue = "test", optNum = 4
ExampleMethod(3, optNum: 4);
// required = 2, optValue = "foo", optNum = 42
ExampleMethod(2, optValue: "foo");
// required = 6, optValue = "bar", optNum = 1
ExampleMethod(optNum: 1, optValue: "bar", required: 6);

使用命名引數的限制

在指定了所有固定引數後,必須出現命名引數規範。

如果在固定引數之前使用命名引數,則會出現如下編譯時錯誤。

StackOverflow 文件

在指定了所有固定引數後,必須出現命名引數規範