Почему компилятор C# просто вызывает неявный параметр без параметров .ctor
вместо intobj
для null
присвоен тип допустимых значений?Инициализация нулевого типа с помощью кода Initobj в IL
Допустим, у нас есть такие, как код:
Nullable<int> ex1 = new Nullable<int>();
Nullable<int> ex2 = null;
Nullable<int> ex3 = new Nullable<int>(10);
Выход IL для этих двух линий выглядеть следующим образом:
Это только называют .ctor
для последнего заявления и почему мы не можем есть экземпляр для двух первых операторов с обнуленными полями?
Хорошо, что мои фотографии показывают, что если бы их было, то это было бы вызвано и в IL, но вместо этого оно вызывает инструкцию 'intobj', чтобы инициализировать тип значения, хотя я сказал« new Nullable() ' , Я отмечаю ваш пост как ответ. –
Tarik