【问题标题】:Default value c# function but not the last [duplicate]默认值c#函数但不是最后一个[重复]
【发布时间】:2018-04-02 13:53:05
【问题描述】:

说我有一个函数

void func (int a = 0, int b = 1)
{
     //do something
}

我想给 b 一个值,但不是 a

func( , 10);

func函数我无法更改,因为我没有创建它,有没有关键字说:使用这个参数的默认值?

【问题讨论】:

  • 在函数调用中指定b即可:func(b:10);
  • 参数列表中不能有分号。
  • @Amy:我认为假设这只是一个错字是合理的,并且实际的方法声明类似于void Func(int a = 0, int b = 1)。虽然很高兴看到实际代码而不是伪代码,但我认为在 OP 确认之前仍然可以回答这个问题。

标签: c#


【解决方案1】:

没有办法明确地说“使用此参数的默认值”,但您可以避免指定任何您需要默认值的参数。当你想省略一个参数但指定一个后面的参数时,你必须使用named arguments - 基本上只是指定参数对应的参数名称。在您的情况下,您想为 b 参数提供一个参数,因此您可以这样称呼它:

Func(b: 10);

如果您只想为 a 参数提供一个参数,您可以使用命名参数来清楚起见:

Func(a: 10);

或者只使用位置参数:

Func(10); // The compiler assumes this corresponds to the first parameter

【讨论】:

    猜你喜欢
    • 2012-05-22
    • 2010-11-15
    • 2013-12-14
    • 2018-07-20
    • 2014-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多