1

2つの方法があるとします

public void foo(int a, int b, bool c = false)
{
    //some code
}

public void foo(int a, int b, bool d, bool c = false)
{
    //some other code
}

私が呼び出すfoo(1,2,true)と、最初のメソッドを参照します。3 つのパラメーターのみを渡して 2 番目のメソッドを呼び出す方法はありますか?

プロダクションコードでこのようなものを見つけました:/

4

2 に答える 2

1
foo(1,2,d:true); //will call the second method.
于 2013-02-20T12:29:18.857 に答える
0

名前付きパラメーターは、デフォルト値を持つ単なるパラメーターです。

提示されたコードでは単にoverload. パラメーター (名前なし) の量が異なることに注意してください。

その他の質問は次のとおりです。

このようなことはできますか?

public void foo(int a, int b, bool c)
{
    //some code
}

public void foo(int a, int b, bool c = false)
{
    //some other code
}

答え: いいえ、できません。私が言ったように、名前付きパラメーターはデフォルト値を持つ単なる通常のパラメーターであるため、まったく同じシグネチャを持つメソッドが既に 1 つあるため、これはコンパイルされません。

于 2013-02-20T12:32:42.847 に答える