データ操作

[C#] null合体演算子を使う(?? はてな2つ)

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が返ります。

関連記事

-データ操作
-,