3

関数の通常の引数にデフォルト値を割り当てることができます。

bool SomeFunction(int arg1 = 3, int arg2 = 4)

次のいずれかの方法で呼び出すことができます。

bool val = SomeFunction();
bool val = SomeFunction(6);
bool val = SomeFunction(6,8);

(未使用の変数を作成する以外に)同様のことを行う方法はありますか?

bool SomeOtherFunction(int arg1, out int argOut)

次のいずれかの方法で呼び出すことができますか?

int outarg;
bool val = SomeOtherFunction(4,outarg);
bool val = SomeOtherFunction(4);

これは可能ですか、そうでない場合は、適切な回避策は何ですか?ありがとう。

4

4 に答える 4

6

良い回避策は次のとおりです。

bool SomeOtherFunction(int arg1, out int argOut){ ... }

bool SomeOtherFunction(int arg1)
{
    int dummyArgOut;
    return SomeOtherFunction(arg1, dummyArgOut);
}

私はそれが最善の回避策であるとさえ言うでしょう。

于 2012-05-21T03:22:54.090 に答える
1

はい、2番目の引数をとらない同じメソッドのオーバーロードバージョンを使用します。

public bool SomeOtherFunction(int arg1)
{
    int ignore;
    return SomeOtherFunction(arg1, out ignore);
}
于 2012-05-21T03:24:19.593 に答える
0

いいえ、refおよびoutパラメーターにデフォルト値を設定することはできません。回避策は、正確に何を達成したいかによって異なります。1つの方法は、それを別のメソッド(またはオーバーロード)にラップし、そのメソッドから出力変数を渡すことです。

于 2012-05-21T03:23:26.240 に答える
-1

C#にはデフォルトの引数はありません。同様のことを行うには、オーバーロードメソッドを実装する必要があります。または、これを使用することもできます。これは、自分で引数を処理する必要があります

于 2012-05-21T03:26:32.537 に答える