前言
若您一直追隨 C# 語言新版本,對於聯合運算子 ?? 應該該不陌生。在 C# 8.0 也不讓人失望的推出新的聯合指派運算子 ??= ,讓 C# 開發人員有簡短且容易理解的語法可以使用。本篇文章將以範例簡單說明 null coalescing assignment,若有錯誤或任何建議,請各位先進不吝提出,謝謝。介紹
在介紹 ??= 運算子之前,我們先回顧一下 ?? 運算子:以下列的程式 x ?? -1 (第 2 行) 為例,若左邊 x 不為 null,則回 x 值;若 x 為 null,則回傳 -1。
int? x = null; int y = x ?? -1; Console.WriteLine(y); // 列印出: -1
透過這個範例,我們可以理解 ?? 運算子,若左邊變數不為 null,則回傳左邊變數;若左邊變數數值為 null,則回傳右邊數值。
而新的 ??= 運算子,以下列程式 a ??= 0 (第 4 行) 為例,若左邊的 a 為 null,則會指派 a 數值為 0 (也就是 a = 0);若左邊 a 不為 null,則不會指派數值。
Listnumbers = null; int? a = null; numbers.Add(a ??= 0); Console.WriteLine(a); // 列印出: 0
透過這個範例,我們可以理解 ??= 運算子,若左邊變數不為 null,則不做任何事;若左邊變數為 null ,則 assign 右邊數值給左邊變數。
0 留言