#208 – You Can Make Any Value Type Nullable
January 11, 2011 2 Comments
The ? character that indicates a nullable type is really a shortcut to the System.Nullable<T> structure, where T is the type being made nullable. In other words, using int? is equivalent to using System.Nullable<System.Int32>.
You can make any value type nullable using the Nullable<T> syntax. You’d typically do this for your own custom struct or enum types.
For example, assume that you have the following two custom types.
// How I'm feeling public enum Mood { Crabby, Happy, Petulant, Elated } // A 3D point with a name public struct Point3D { public float X, Y, Z; public string Name; }
You can use these types as nullable types using Nullable<T>.
Nullable<Mood> me = Mood.Crabby; me = null; Nullable<Point3D> nonPoint = null;