shuhelohelo’s blog

Xamarin.Forms多めです.

null合体(??)とnull合体代入(??=)とnull条件(?.または?[])

ufcpp.net

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やキャッシュ用途として便利.

docs.microsoft.com

Null条件演算子

メンバーへのアクセスとコレクションの要素へのアクセスに対して,そのオブジェクトがNullではない場合に限りメンバー,または要素へのアクセスを行うようにする演算子.

そのオブジェクトがNullだった場合は,メンバーや要素にアクセスせずにNullを返すのでNull参照例外が発生しない.