なぜC#コンパイラは、割り当てられたnull許容値型では.ctor
なく、デフォルトの暗黙的なパラメータなしを単純に呼び出さないのですか?intobj
null
次のようなコードがあるとしましょう。
Nullable<int> ex1 = new Nullable<int>();
Nullable<int> ex2 = null;
Nullable<int> ex3 = new Nullable<int>(10);
これらの2行のIL出力は次のようになります。
最後のステートメントのみが.ctor
必要であり、フィールドがゼロの2つの最初のステートメントのインスタンスを作成できないのはなぜですか?