C# Null Conditional Operator, Null 條件運算子
2021-06-23
筆記 C# Null Conditional Operator (Null 條件預算子)的使用方式,讓處理物件的 Null 檢查上更為方便(此語言特性為 C# 6.0 所加入)😎
說明
檢查是否為 Null
?.
語法也稱為貓王運算子(Elvis Operator),因為顏文字看很像一對眼睛搭配貓王的捲髮。
Object?.Property
// 相當於以下邏輯
if (Object == null)
{
return null;
}
else
{
return Object.Property;
}
可以做 Chaining 的 Null Condition
Object?.SubObject?.Property
// 相當於以下邏輯
if (Object != null && Object.SubObject != null)
{
return Object.SubObject.Property;
}
else
{
return
}
Null 情況下的預設值
Object ?? "VALUE"
// 相當於以下邏輯
if (Object == null)
{
return "VALUE";
}
else
{
return Object;
}
聯合指派, Null-Coalescing Assignment Operator
C# 8.0 以後支援聯合指派新語法,??=
可以檢查物件是否為 Null 並進行賦值。
Object ??= new ClassName();
// 相當於以下邏輯
if (Object == null)
{
Object = new ClassName();
}