今回はnull判定を簡素に行う方法を解説していきます。
null条件演算子?
やnull合体演算子??
を使うことでシンプルなコードを記述することが可能なので、ぜひ最後までご覧になってくださいね。
目次
スポンサーリンク
null条件演算子を使ってnullアクセスを回避する
null判定しない場合にはnullアクセス時点でエラーとなってしまいます。
null条件演算子?
を使うことでエラーを回避して処理することが可能となります。
サンプルコード
string str = null;
Console.WriteLine(str?.Length);
str
とLength
の間に?
を入れることにより、str
がnull
だった場合はアクセスを行いません。
null判定に特化したnull合体演算子を活用する方法
C#にはnull判定に特化した演算子があり、??
を使うことで次のように表現することができます。
サンプルコード
string str = null;
str = str ?? “Hello world!!”;
Console.WriteLine(str);
実行結果
Hello world!!
C# 8.0でnull合体演算子がより一層シンプル化
C# 8.0からリリースされたnull合体演算子を使えば、更にシンプルなコードを記述することができます。
サンプルコード
string str = null;
str ??= “Hello world!!”;
Console.WriteLine(str);
実行結果
Hello world!!
int型などの基本型にもnullを割り当てられる
null許容型というC#の機能を使うことで、本来はnull
を代入できないint
やdouble
などの基本型にnull
を割り当てることができるようになります。
以下にサンプルを示します。
サンプルコード
int? a = null;
double? b = null;
Console.WriteLine(a);
Console.WriteLine(b);
a = a ?? 111;
b ??= 1.11d;
Console.WriteLine(a);
Console.WriteLine(b);
実行結果
111
1.11
int型のa
とdouble型のb
の後ろに?を付けることでnull
を代入することに成功しました。
また、a
とb
がnull
になっていることでnull合体演算子??
により、null
だった場合に値を代入することもできました。
コメント