Typ Nullable<T>
definiowany jest jako , zdefiniowany jako struct
. W .Net nie można przypisać null
do struct
, ponieważ structs
są typami wartości, które nie mogą być reprezentowane przez null
(z wyjątkiem Nullable<T>
).Sposób działania .Net umożliwia ustawienie wartości Null w wartości Null
int i = null; // won't compile - we all know this
int? i = null; // will compile, and I'm glad it does, and it should compile, but why?
Skąd Nullable<T>
stać się wyjątkiem od reguły „Nie można przypisać null
do typu wartości?” Dekompilowany kod dla Nullable<T>
nie daje wglądu w to, jak to się dzieje.
możliwy duplikat [w jaki sposób typy null można zaimplementować pod maską w .net?] (Http://stackoverflow.com/questions/2503811/how-are-nullable-types-implemented-under-the-hood-in -net) –