Loading lessons...
Nullable Types
Nullable Types
By default, value types like int and double cannot hold null. The nullable types let them represent "no value".
Nullable value types
Add ? to make a value type nullable:
int? age = null;
double? score = null;
bool? isDone = null;
Why nullable?
Databases and real life are full of missing values. A int? can represent "we don't know the age yet".
Check for a value
Use .HasValue and .Value:
int? age = 25;
if (age.HasValue)
{
Console.WriteLine(age.Value); // 25
}
The ?? operator
?? provides a fallback when a nullable is null:
int? age = null;
int realAge = age ?? 0; // age is null, so realAge = 0
Nullable reference types
Modern C# also tracks whether reference types (like string) can be null. The compiler warns you when you might be using null unsafely.
TL;DR
int?,double?,bool?can hold null..HasValue/.Valueinspect a nullable.??gives a fallback value.- Value types are null by default;
?makes them nullable.