C# の Null 合体演算子
C# の Null 合体演算子 ??
C# の Null 合体演算子 (null coalescing operator) ?? は次の形で使います。
var a = b ?? c;
変数 b の値を評価して、それが null でなければ b の値を a に代入します。 もし null であれば c の値を a に代入します。
サンプルコードは次のようになります。
int? b = null;
var c = -1;
var a = b ?? c;
Console.WriteLine($"(a,b,c)=({a},{b},{c})");
// (a,b,c)=(-1,,-1)
C# の Null 合体代入演算子 ??=
C# の null 合体代入演算子 (null coalescing assignment operator) ??= は、 次の形式で使います。
a ??= b;
これは a を評価して、もし a が null である場合に、 b の値を a に代入します。
サンプルコードは次のようになります。
int? a = null;
int? b = 5;
a ??= b;
Console.WriteLine($"(a,b)=({a},{b})");
// (a,b)=(5,5)
この場合 a は null だったので、 b の値が a に代入されます。
int? a = 1;
int? b = 5;
a ??= b;
Console.WriteLine($"(a,b)=({a},{b})");
// (a,b)=(1,5)
この場合 a は null ではないので、 b の値は a に代入されません。