另一个参数的默认参数值

时间:2018-05-31 12:35:29

标签: c#

我想做类似下面的事情:

private void MyMethod(int param1, int param2 = param1){}

目的是使param2成为可选项,并且在未指定的情况下,为其赋予与第一个参数相同的值。

这可能吗?

我知道我可以使用可空类型并在方法体中进行检查和赋值。我也知道我可以通过重载实现这一点。我特别想知道签名是否可行。

我正在使用.Net 4.0

由于

1 个答案:

答案 0 :(得分:5)

  

这可能吗?

没有。参数的默认值必须是以下之一:

  • 编译时常量(例如数字或字符串文字)
  • 参数类型的默认值,例如default(Foo)default(自C#7.1起)
  • 值类型的“零”值,例如new Guid()

不幸的是,这是非常严格的限制。