另一个参数的默认参数值

Gin*_*nja 0 c#

我想做类似下面的事情:

private void MyMethod(int param1, int param2 = param1){}
Run Code Online (Sandbox Code Playgroud)

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

这可能吗?

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

我正在使用.Net 4.0

谢谢

Jon*_*eet 5

这可能吗?

不可以.参数的默认值必须是以下值之一:

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

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