17

他の言語では、次のようなメソッド署名を設定できます

cookEgg(boolean hardBoiled = true)

メソッド呼び出しでパラメーターを受け取っていない場合、これはパラメーターhardboiledをデフォルトで に設定します。true

C#でこれを達成するにはどうすればよいですか?

4

3 に答える 3

32

現在、メソッドをオーバーロードする必要があります。

void cookEgg(bool hardBoiled) { ... }
void cookEgg() { cookEgg(true); }

C# 4.0 では、オプションの引数が追加されます。元のサンプルとまったく同じようにコードを記述でき、期待どおりに動作します。

于 2009-07-30T04:24:34.183 に答える
11

既定のパラメーターは、C# 4 (Visual Studio 2010) でサポートされています。

http://msdn.microsoft.com/en-us/library/dd264739(VS.100).aspx

于 2009-07-30T05:46:44.640 に答える
2

これはあなたが正確に見ているものではありませんが、 params引数は別の答​​えだと思います。

void test(params int []arg) { }
于 2009-07-30T04:36:01.060 に答える