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 に代入されません。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 C# 入門