The C# ‘??’ Null-Coalescing Operator. It’s actually simple and really useful.
Many programmers have not heard of the ?? operator in C# but it is one of the most useful operators. It’s all to do with easing the pain of dealing with nulls. The official Microsoft definition is:
The ?? operator is called the null-coalescing operator. It returns the left-hand operand if the operand is not null; otherwise it returns the right hand operand.
A simple example is (say) an integer defined as a nullable type:
int? x = null;
You then define a normal integer:
int y;
You know the problem when you do y = x. You start to need casts or conversions and there’s a danger of run-time errors. The ?? operator solves this problem easily:
y = x ?? 0;
So y is set to x when x is an integer, but if x is null y is set to 0.
It is useful with strings too:
WriteLine( someName ?? “Name not given” );
I use them in getters, example:
get { return (ViewState[“template”] ?? “”).ToString(); }
It makes life a little easier.
P.S. If you are wondering what the definition of ‘coalescing’ is, then it means ‘combining’, or ‘bringing together’.