System.Nullable is a generic value type. It is implemented as a struct that holds an instance of the specified value type, along with a flag to indicate it's validity.
How to create:
(The process of creating a non-null instance of a nullable type from a given value is called wrapping).
How to test:
How to read:
(The process of accessing the Value property of a nullable type is called unwrapping).