Several folks have blogged about the ?? operator in the past
- read here, here, here, and here
for some previous examples on how to use it. Simply put, the ?? operator
checks whether the value provided on the left side of the expression is null,
and if so it returns an alternate value indicated by the right side of the
expression. If the value provided on the left side of the
expression isn't null, then it returns the original value.
For example, let's assume we have a string variable
"message". We could check whether message was null, and return
an alternate value using the code below:
Figure 1
Because the "message" variable above
wasn't null, the "result" variable is assigned the original
"hello world" message value.
In the code snippet below, however, message is
a null value, and so the ?? operator will return the alternate value we've
provided:
Figure 2
The ?? operator works for both reference types and value
types. For example, below we are checking whether the nullable
integer "number" variable is null. Because it isn't, the result
will be the original value (55):
Figure 3
If "number" is null, then result is assigned the
value 0:
Figure 4