?? 演算子 (C# リファレンス)
?? 演算子は、左側のオペランドが null 値でない場合にはこのオペランドを返し、null 値である場合には右側のオペランドを返します。
??演算子は下記、サンプルのようなコードの場合、aがnullなら0を返す。という動作をします。
int? a = null; Console.WriteLine(a ?? 0);
もちろん、二つの値だけではなく、以下のような使い方もできます。
左から右の順に初めてnullでは無い値を返します。
下の場合cが初めてnullでは無い値なのでcの値である2を返します。
int? a = null; int? b = null; int? c = 2; int? d = null; Console.WriteLine(a ?? b ?? c ?? d ?? 0);
新しい演算子なので、当たり前ですが見慣れないので、三項演算子に並んで保守派に忌避されそうな演算子ですね。
ほんの30秒だけMSDNの該当ページを読めば分かる処理内容で分かりやすく読みやすくなるのですが・・・。