【C#】Null合体演算子について【.NET】

C#機能バージョン対応表作成しました。
こちらの記事も合わせてご覧ください。
Null合体演算子について説明します。
まず最初に、以下のソースを見てください。
サンプルコード1
1 2 3 4 5 6 7 8 9 10 |
// str は string型の値です if (str == null) { Console.WriteLine("Null"); } else { Console.WriteLine(str); } |
strがNullならコンソールにNullと表示させ、
strに値が設定されていたら、strに設定されている文字列を表示します。
次に、三項演算子を使用して同じ処理を作成します。
サンプルコード2
1 2 3 |
// str は string型の値です Console.WriteLine(str == null ? "Null" : str); |
こちらも同様に、str が null ならNullと表示させ、
strに値が設定されていたら、strに設定されている文字列を表示します。
やはり、参考演算子を利用した方がコードが短くなりますね。
次に、Null合体演算子を使用して同じ処理を作成します。
サンプルコード3
1 2 3 |
// str は string型の値です Console.WriteLine(str ?? "Null"); |
これが、Null合体演算子になります。
さらに、コードが短くなりました。
処理の意味は今までの同じで、str が null ならNullと表示させ、
strに値が設定されていたら、strに設定されている文字列を表示します。
?? の左の値がNullの場合は ?? の右の値が返されるような動きになっています。
コード量が減るので、使える時は意識して使っていこうと思います。(最近までNull合体演算子の存在を知りませんでした。。。)
ちなみに、以下のように繋げて使用することもできます。
サンプルコード4
1 2 3 |
// str1 と str2 は string型の値です Console.WriteLine(str1 ?? str2 ?? "str1 と str2 がともに Null"); |
この場合は、str1 がNullだった場合は str2 を返して、str2 もNullなら【str1 と str2 がともに Null】という文字列を返します。
こんな便利な機能を今まで知らなかったとは・・・
Null合体演算子に出会えてよかったです。
関連機能で【Null条件演算子】なるものがあります。
以下の記事をどうぞ!