null合体(??)とnull合体代入(??=)とnull条件(?.または?[])
Null合体演算子
左辺がNullだったら右辺を返す.
string? s = null; var s1 = s ?? "this is null1"; Console.WriteLine(s1);
Null合体代入演算子
左辺がNullだったら右辺を左辺に代入する.
string? s = null; s ??= "this is null2"; Console.WriteLine(s);
これは,これまで以下のように書いていた処理を置き換えることができる
string? s = null; s = s ?? "this is null2";//もしNullだったら代入する. Console.WriteLine(s);
Singletonやキャッシュ用途として便利.
Null条件演算子
メンバーへのアクセスとコレクションの要素へのアクセスに対して,そのオブジェクトがNullではない場合に限りメンバー,または要素へのアクセスを行うようにする演算子.
そのオブジェクトがNullだった場合は,メンバーや要素にアクセスせずにNullを返すのでNull参照例外が発生しない.