1

パラメータを省略する以外に、デフォルト値を使用するようにオプションのパラメータを使用してメソッドに「指示」する方法はありますか?構文は次のようになると思います。

DoSomething(myParam: default)                         //calling the method

public void DoSomething(int myParam = 5) { ... }      //method definition

これを行う理由は、パラメーターを受け取らないこのメソッドのオーバーロード間のあいまいさを回避するためです。言い換えれば、私はこのメソッドが呼び出されることを望んでいません:

public void DoSomething() { ... }

前もって感謝します。

4

2 に答える 2

2

パラメータを受け取らないDoSomethingメソッドをユーザーに呼び出させたくない場合は、次のようにプライベートにします。

private void DoSomething();
于 2012-07-18T16:03:56.090 に答える
2

この特定のケースでは、オプションのパラメータをまったく使用すべきではないようです。彼らはあなたの人生を楽にするように設計されています。彼らがそれをやめたとき、それはおそらく彼らの使用をやめる時です。

この一般的なアプローチを使用して、さまざまなオーバーロードでオプションのパラメーターと同じ一般的な目標を達成できます。

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); }

これは、オプションのパラメーターが回避するように設計されたものですが、コードを少し膨らませたとしても、この定型コードに戻る方が簡単な場合があります。

于 2012-07-18T16:23:02.037 に答える