5

次のシグネチャを持つメソッドがあるとします。

public void SomeMethod(bool foo = false, bool bar = true) { /* ... */ }

このメソッドを呼び出すときに、ではなくの値を指定する方法はありますbarfoo?それは次のようになります...

SomeMethod(_, false);

...これは...に変換されます

SometMethod(false, false);

...コンパイル時。これは可能ですか?

4

2 に答える 2

10

名前付きパラメーターを見てください。

    SomeMethod(bar: false);
于 2010-05-20T18:13:09.417 に答える
2

C#4では、次の2つの方法で関数にパラメーターを指定できます。

  1. 位置:常にサポートされていたもの
  2. 名前付き:各パラメーターの名前を指定して、任意の順序で配置できます

位置パラメータでは、2番目のデフォルトパラメータのみを指定する方法はありません。名前付きパラメータにはがあります。最初に名前が付けられたパラメータを単に省略します。

次に例を示します。

    static void test(bool f1 = false, bool f2 = false)
    {
        //f1 == false and f2 == true
    }

    static void Main(string[] args)
    {
        test(f2: true);
    }
于 2010-05-20T18:13:06.813 に答える