在 C# 中,問號?後面加上點.的語法是一種稱為 "null 條件運算子" 的語法。這個語法可以讓你在存取物件的屬性或方法時,先檢查該物件是否為 null,避免因為 null 參考而造成的例外錯誤。
以下是一些使用該語法的範例及說明。
範例 1:檢查物件是否為 null
假設我們有一個叫做 person 的物件,我們要取得他的名字。若 person 為 null,直接取名字的話會造成例外錯誤。因此,我們可以使用 null 條件運算子來檢查 person 是否為 null,如果是,則不執行取名字的動作。
string name = person?.Name;
如果 person 不是 null,上述程式碼會取得 person 的名字。如果 person 為 null,則上述程式碼會回傳 null,而不會發生例外錯誤。
範例 2:呼叫方法
假設我們有一個叫做 calculator 的物件,我們要呼叫他的 Add 方法來計算兩個數字的和。若 calculator 為 null,直接呼叫 Add 方法的話會造成例外錯誤。因此,我們可以使用 null 條件運算子來檢查 calculator 是否為 null,如果是,則不執行呼叫 Add 方法的動作。
int sum = calculator?.Add(1, 2);
如果 calculator 不是 null,上述程式碼會呼叫 calculator 的 Add 方法來計算 1 和 2 的和。如果 calculator 為 null,則上述程式碼會回傳 null,而不會發生例外錯誤。
範例 3:存取集合元素
假設我們有一個叫做 list 的集合物件,我們要取得第一個元素的名字。若 list 為 null 或者 list 沒有任何元素,直接取第一個元素的話會造成例外錯誤。因此,我們可以使用 null 條件運算子來檢查 list 是否為 null,如果是,則不執行取第一個元素的動作。
string firstName = list?.FirstOrDefault()?.Name;
如果 list 不是 null,並且有元素,上述程式碼會取得 list 的第一個元素的名字。如果 list 為 null 或者沒有任何元素,則上述程式碼會回傳 null,而不會發生例外錯誤。
留言
張貼留言