I\'m curious to know how the Nullable type works behind the scenes. Is it creating a new object(objects can be assigned null) with a possible value of null?
Nullable is implemented as a struct that overrides Equals() to behave as null if HasValue is false. There is an implicit conversion from T to T?, and an explicit conversion in the other direction which throws if !HasValue.