如何在 C# 中跳过可选参数?

发布于 2024-10-10 18:44:22 字数 329 浏览 4 评论 0原文

示例:

public int foo(int x, int optionalY = 1, int optionalZ = 2) { ... }

我想这样称呼它:

int returnVal = foo(5,,8); 

换句话说,我想提供 xz,但我想使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

江挽川 2024-10-17 18:44:23

如果这是 C# 4.0,您可以使用命名参数功能:

foo(x: 5, optionalZ: 8); 

请参阅此博客了解更多信息。

If this is C# 4.0, you can use named arguments feature:

foo(x: 5, optionalZ: 8); 

See this blog for more information.

话少心凉 2024-10-17 18:44:23

在 C# 4.0 中,您可以命名跳过默认值之后出现的参数,如下

int returnVal = foo(5, optionalZ: 8);

所示 : 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:

int returnVal = foo(5, optionalZ: 8);

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.

放飞的风筝 2024-10-17 18:44:23

提供您选择的参数的另一种动态方法是在类中实现您的方法并向类构造函数提供命名参数。为什么不在同一行代码上添加对方法的调用,如此处所述:如何定义命名参数 C#

var p = new PersonInfo { Name = "Peter", Age = 15 }.BuildPerson();

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#

var p = new PersonInfo { Name = "Peter", Age = 15 }.BuildPerson();

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文