如果该参数是可选参数,我们可以省略调用中的参数 每个可选参数都有自己的默认值 如果我们不提供该值,它将采用默认值 可选参数的默认值必须是
常量表达式。
必须是值类型,例如 enum 或 struct。
必须是形式的表达 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);
使用命名参数的限制
命名参数规范必须出现在所有固定参数都已指定之后。
如果在固定参数之前使用命名参数,则会出现如下编译时错误。
命名参数规范必须出现在所有固定参数都被指定之后