可选参数和命名参数

如果该参数是一个可选参数,我们可以省略调用中的参数每个可选参数都有自己的默认值如果我们不提供值,它将采用默认值一个可选参数的默认值必须是

  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 文档

在指定了所有固定参数后,必须出现命名参数规范