Null Coalescing Operator
The null coalescing operator?? checks to see if a value if null.
var color = "purple";
Console.WriteLine(color ?? "undefined"); // purple
color = null;
Console.WriteLine(color ?? "undefined"); // undefined
So:
- display the value of
colorif it's not null - otherwise print
undefined
Usage:
It's useful when you want to see if a string contains anything instead of using an if statement.
Another example
We can define a function to format a date:
public static string FormatDate(DateTime date, string format = null)
{
return string.Format(format ?? "{0}", date);
}
Instead of using an if statement, we can simply check if the format is null when we pass it to string.Format. In case of null, it uses the left operand.
And we can call it with a format:
var now = DateTime.Now;
var formattedValue = FormatDate(now, "{0:yyyy MM dd}");
Console.WriteLine(formattedValue); // 2018 05 25