いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

??(null結合演算子)の利用

C# 2.0より??(はてな二つ)という結合演算子が追加されています。
null結合演算子(null coalescing operator)っていうらしいです。
この演算子は、nullでない最初の値を返します。
sqlのcoalesceみたいなものです。結構便利。

// vim:set ts=4 sw=4 et ws is nowrap ft=cs:

using System;

namespace Gsf.Samples.CSharp{
    class NullCoalesceOperatorSample{
        static void Main(){
            //
            // ??は、nullでない最初の項目を返す。
            //
            string s1 = null;
            string s2 = null;
            string s3 = "hoge";

            Console.WriteLine(s1 ?? s2 ?? s3);  // "hoge"と表示されます。
        }
    }
}

C# 2.0では、nullable型が導入されたのでそれとともに使用するのが
多いみたいです。nullable型というのは基本型にnullを格納できるようにするための
ものです。

int x = 10;    // OK.
int y = null;  // NG.
int? z = null; // OK.

んで、zの値を確認する場合に

int a = z ?? -1;

とかすると、値がnullの場合にも適切なデフォルト値を入れられるという
感じです。