C#にはnull合体演算子という演算子があります。
この演算子は「??」(はてな2つ)で表します。
使い方は、var c = a ?? b のように書いて、
左辺がnullでない場合は左辺を返し、左辺がnullの場合は右辺を返します。
※イメージとしてはORACLEのNVL関数に似ています。
null合体演算子(??)
例1)null合体演算子を使う
//テスト用変数
string a = "aa";
string b = "bb";
string c = null;
//左辺がnullでない場合
string result = a ?? b;
→ "aa" ※左辺の値が返る
//左辺がnullの場合
string result = c ?? b;
→ "bb" ※右辺の値が返る
null合体割り当て演算子(??=)
変数の値がnullの場合は指定した値に置き換える場合は、
null合体割り当て演算子(??=)を使うこともできます。
例2)null合体割り当て演算子を使う
//テスト用変数
string a = "aa";
string b = null;
//変数値がnullでない場合
a ??= "XX";
→ "aa" ※変数値はそのまま
//変数値がnullの場合
b ??= "XX";
→ "XX" ※変数値は指定した値に置き換えられる
null合体割り当て演算子は、C#8.0以降で使用できます。
備考
- プログラム中で、nullの場合に別の値に置き換えたい処理などで便利です。
- null合体演算子は、左辺・右辺共にnullの場合はnullが返ります。