除了省略参数之外,有没有办法“告诉”带有可选参数的方法来使用默认值?我想这个语法看起来像这样:
DoSomething(myParam: default) //calling the method
public void DoSomething(int myParam = 5) { ... } //method definition
这样做的原因是为了避免不带参数的此方法的重载之间存在歧义。换句话说,我不希望调用此方法:
public void DoSomething() { ... }
提前致谢。
答案 0 :(得分:2)
如果您不希望用户调用不带参数的DoSomething方法,请将其设为私有,如下所示:
private void DoSomething();
答案 1 :(得分:1)
在这种特殊情况下,您似乎根本不应该使用可选参数。它们旨在让您的生活更轻松。当他们停止这样做时,可能是时候停止使用它们了。
使用这种通用方法,您可以使用各种重载实现可选参数的相同总体目标:
public void Foo(int param1, int param2, int param3){ /* actual Foo code goes here */ }
public void Foo(int param1, int param2) { Foo(param1, param2, 5); }
public void Foo(int param1) { Foo(param1, 0, 5); }
public void Foo() { Foo(42, 0, 5); }
这是可选参数的设计目的,但有时候回到这个样板代码可能会更简单,即使它会使代码膨胀。