В 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;