Nullable Types

Because value types can’t normally represent null values, C# includes nullable types–types that can represent their normal range of values or represent a null value.
Any value type can be used as a nullable type by adding a trailing ? to the type name.
1
2
3
4
int i = 12;   // regular int, can't be null
 
int? j = 22;  // Nullable int, can be null
j = null;     // Can also be null
Here are some other examples of nullable types.  In each case, we can set the variable’s value to null, which means that the variable doesn’t have a value that falls within the range of the corresponding type.


1
2
3
double? r = null;
bool? thisIsFalse = null;
Mood? myMood = null;