Тип значения C #, инициализированный с помощью null

В C # 3.0 можно присвоить int значение null? тип (в CLR int? - это структура):

int? a = null;

но когда вы определяете пользовательскую структуру:

struct MyStruct
{

}

возникает ошибка во время компиляции этого кода:

MyStruct a = null;

Ошибка выглядит следующим образом:

Cannot convert null to 'Example.MyStruct' because it is a non-nullable value type

Хотя int? является структурой в среде CLR, и почему-то нелогично присвоить ей значение null. Я полагаю, что null неявно приведен или упакован в certian int? значение, представляющее нулевое значение. Как именно это делается? Как я могу расширить MyStruct таким образом, чтобы можно было выполнить строку:

MyStruct a = null;
7
задан mgamer 24 November 2010 в 18:22
поделиться