If you have used javascript before you probably have used the logical OR (||) operator while assigning values to a variable. For example,
let a = b || c;
The above code snippet assigns the value of b
to a
if it is defined, else assign c
to it.
In C# the ??
operator is used to handle this kind of situations.
This operator us available in C# 8.0 and later.
Syntax
a = b ?? c;
The above statement will be equivalent to
if(b == null)
{
a = c
}
else
{
a = b
}
Examples
Below are some use-cases for ??
operator.
1. Throwing an exception
int? val = input ?? throw new Exception("'input' cannot be null");
2. Assigning a default value
int? requiredValue = userInput ?? -1;
3. This operator can also be Nested
int? a = 1;
int? b = null;
int? c = 3;
int? d = a ?? b ?? c;
Console.Write(d); // 1
This operator is right-associative, so the above example will evaluated as
a ?? (b ?? c)
a ?? (null ?? 3)
a ?? 3
1 ?? 3
1
Top comments (0)