[C#] null許容型

null許容型

C# 2.0: 実装
C# 8.0: null許容参照型

宣言と初期化

int? x = 123;
int? y = null;

値を持つかどうかはHasValueプロパティで判断できる

if (x.HasValue) Console.WriteLine(x.Value)

??演算子 (null coalescing operator)

int? z = x ?? y; // x != null ? x : y
int i = z ?? -1; // z != null ? z.Value : -1

??=演算子

static void M(string s = null)
{
    s ??= "default string"; // if (s == null) s = "default string";
    Console.WriteLine(s);
}

参考サイト

null許容値型(Nullable<T> 型) – C# によるプログラミング入門 | ++C++; // 未確認飛行 C
https://ufcpp.net/study/csharp/sp2_nullable.html