Nullable<T> is defined as a normal structure, but there are special interceptors in the CLR to [mscorlib]System.Nullable`1 / unpack the [mscorlib]System.Nullable`1 instance to null according to the HasValue property. There is more about this here
source share