хз как они это делают int? a; //null float? b; //null double? c; //null
так это сахар, по сути оно меняется на что-то типа System.Nullable<int> d2 = 23; Как внутри устроено не смотрел, не уверен, скорее что-то типа Struct Nullable<T>{ SomeRef t; T val; }