如何在 C# 中跳过可选参数?
示例:
public int foo(int x, int optionalY = 1, int optionalZ = 2) { ... }
我想这样称呼它:
int returnVal = foo(5,,8);
换句话说,我想提供 x
和 z
,但我想使用 Y 的默认值
, 可选Y = 1.
Visual Studio 不喜欢,,
请帮忙。
Example:
public int foo(int x, int optionalY = 1, int optionalZ = 2) { ... }
I'd like to call it like this:
int returnVal = foo(5,,8);
In other words, I want to provide x
and z
, but I want to use the default for Y
, optionalY = 1.
Visual Studio does not like the ,,
Please help.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果这是 C# 4.0,您可以使用命名参数功能:
请参阅此博客了解更多信息。
If this is C# 4.0, you can use named arguments feature:
See this blog for more information.
在 C# 4.0 中,您可以命名跳过默认值之后出现的参数,如下
所示 : argument-in-c-4-0.aspx" rel="noreferrer">命名参数。其他几种语言提供了此功能,并且它们通常使用语法
foo(5, optionalZ=8)
来代替,这在阅读其他语言的代码时很有用。In C# 4.0 you can name the arguments occurring after skipped defaults like this:
This is called as named arguments. Several others languages provide this feature, and it's common form them to use the syntax
foo(5, optionalZ=8)
instead, which is useful to know when reading code in other languages.提供您选择的参数的另一种动态方法是在类中实现您的方法并向类构造函数提供命名参数。为什么不在同一行代码上添加对方法的调用,如此处所述:如何定义命名参数 C#
Another dynamic way to supply parameters of your choise is to implement your method(s) in a class and supply named parameters to the class constructor. Why not even add calls to methods on same line of code as mentioned here : How to define named Parameters C#