C# 用空值結合運算子處理 Null

January 20, 2023

????= 在 C# 中,被稱為空值結合運算子 (null coalescing operator),C# 8.0 以後支援。

?? 的用法

可以用 ?? (兩個問號) 快速設定 null 時要如何處理:

StringBuilder log = oldLog ?? new StringBuilder();

相當於

StringBuilder log = oldLog != null ? oldLog : new StringBuilder();

也可拆解為

StringBuilder log;
if(oldLog != null){
    log = oldLog;
}
else{
    log = new StringBuilder();
}

??= 的用法

可以用 ??= (二問號一等號)  指定空值時的預設值,例如:

a ??= 10;

相當於:

if (a == null) {
  a = 10;
}

參考資料