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();
}