Nullable types are instances of the System.Nullable struct. They are value types, though we can assign null to them. For example int? is a Nullable<Int32>. All nullable types have two values:
- The value of the data type.
- A boolean value that tells if value has been set(HasValue property).
DateTime also is value type, btw