他の言語では、c#デフォルトパラメータ
cookEgg(boolean hardBoiled = true)
のようなメソッドシグネチャを設定することができます。メソッドコールでパラメータを受け取らない場合、パラメータhardboiledがtrueにデフォルト設定されます。 どうすればCでこれを達成できますか?
多くのおかげで
他の言語では、c#デフォルトパラメータ
cookEgg(boolean hardBoiled = true)
のようなメソッドシグネチャを設定することができます。メソッドコールでパラメータを受け取らない場合、パラメータhardboiledがtrueにデフォルト設定されます。 どうすればCでこれを達成できますか?
多くのおかげで
は、あなたがメソッドをオーバーロードする必要があります。
void cookEgg(bool hardBoiled) { ... }
void cookEgg() { cookEgg(true); }
C#4.0は、オプションの引数を追加します - あなたは正確にあなたの元のサンプルのようなコードを書くことができるようになります、そしてそれ期待どおりに動作します。
これはあなたが正確に見えるものではありませんが、私はのパラメータ引数が別の答えだと思います。
void test(params int []arg) { }
デフォルトパラメータは、C#4(Visual Studio 2010)でサポートされています。
http://msdn.microsoft.com/en-us/library/dd264739(VS.100).aspx
私はこの機能を楽しみにしています。むしろ、この機能を現時点で使用するためにオーバーロードされたメソッドを作成する必要があります。私はまた、静的な拡張メソッド(System.Stringのような静的クラスを拡張するもの)を期待しています。 – Zack
C#3.0で 'System.String'の拡張メソッドを簡単に定義できるので、何かが欠けているはずです。 –