[英]How to skip optional parameters in C#?
例:
public int foo(int x, int optionalY = 1, int optionalZ = 2) { ... }
我想这样称呼它:
int returnVal = foo(5,,8);
换句话说,我想提供x
和z
,但我想使用Y
的默认值, optionalY = 1.
Visual Studio不喜欢,,
请帮忙。
在C#4.0中,您可以命名在跳过默认值之后发生的参数,如下所示:
int returnVal = foo(5, optionalZ: 8);
这称为命名参数 。 其他几种语言提供了这一功能,并且通常使用语法foo(5, optionalZ=8)
代替它,这对于了解何时阅读其他语言的代码很有用。
另一种提供选择参数的动态方法是在类中实现方法,并为类构造函数提供命名参数。 为什么不在这里提到的同一行代码上添加对方法的调用: 如何定义命名参数C#
var p = new PersonInfo {Name =“Peter”,Age = 15} .BuildPerson();
这是一个迟到的答案,但对于那些进入这个问题的人来说。 也可以使用Overloads,它使用与方法/函数相同的名称,但使用不同的参数集。
EA
int SummAll (int a=0, int b=1, int c=2)
{return a+b+c;}
int SumAll (int a=0;int c=10) //skipping B
{return a+c; }
这种模式等同于我们可以浏览函数变体的intellicense。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.