マネージド型のメンバー関数またはジェネリック関数の既定の引数を宣言できないのはなぜですか? 名前付き引数とオプション引数C# 4.0
が導入されました。同様のことはありますか?CLI
次のようなメソッドを宣言できない理由がわかりません。
void Optional(int argument = 0);
そして、コンパイラを呼び出すと、この呼び出しは : に変換Optional();
されません。Optional(0);
マネージド型のメンバー関数またはジェネリック関数の既定の引数を宣言できないのはなぜですか? 名前付き引数とオプション引数C# 4.0
が導入されました。同様のことはありますか?CLI
次のようなメソッドを宣言できない理由がわかりません。
void Optional(int argument = 0);
そして、コンパイラを呼び出すと、この呼び出しは : に変換Optional();
されません。Optional(0);
C++/CLI コンパイラが正しい IL ディレクティブを発行していないようです。.param [1] = int32(0)
C# が既定のパラメーターを認識するために使用するディレクティブは発行しません。生成されたアセンブリを ILDasm で開くと、それが表示されます。
コンパイルする方法は、名前空間から属性を使用することですOptional
が、C# は既定のパラメーターにそれらを使用しないため、現在、オーバーロードを作成する簡単な方法はありません。DefaultParameterValue
System::Runtime::InteropServices
これらの属性についての質問は、https ://stackoverflow.com/a/4974528/93652 で見つけることができます。