null合体演算子

組込み演算子 - C# によるプログラミング入門 | ++C++; // 未確認飛行 C


対象の変数がnullだったら初期値を入れるという処理を書くための演算子です。

三項演算子の特殊省略形のような感じですね。

ということでまずは三項演算子を使った場合の処理を確認してみます。

using System;

class Program {
    static string DefaultValue (string s) {
        return s != null ? s : "初期値";
    }
    
    static void Main() {
        Console.WriteLine( DefaultValue(null) );
        Console.WriteLine( DefaultValue("FOO!") );
    }
}
$ main
初期値
FOO!

これをnull合体演算子「??」を使った場合は以下のようになります。

    static string DefaultValue (string s) {
        // null合体演算子を使う
        return s ?? "初期値";
    }

これでsがnullだったら"初期値"になるし、sがnull以外だったらsを返す、という処理になるわけです。

これは便利ですね。