C#可选参数和命名参数

例子

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

  1. 常量表达式。

  2. 必须是值类型,例如 enum 或 struct。

  3. 必须是形式的表达 default(valueType)

必须设置在参数列表的末尾

具有默认值的方法参数:

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

正如 MSDN 所说, A named argument ,

使您能够通过关联参数的名称将参数传递给函数 无需记住我们总是不知道的参数位置。无需查看被调用函数的参数列表中参数的顺序。我们可以通过名称为每个参数指定参数。

命名参数:

// 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);

使用命名参数的限制

命名参数规范必须出现在所有固定参数都已指定之后。

如果在固定参数之前使用命名参数,则会出现如下编译时错误。

命名参数规范必须出现在所有固定参数都被指定之后