C# 有以下三個運算子來處理空值-
允許您取得變數的值(如果不是) null,或指定可以使用的預設值。
它取代 C# 中的以下表達式 -
string resultOne = value != null ? value : "default_value";
使用以下表達式 -
string resultTwo = value ?? "default_value";
這是一個說明這一點的範例。
範例
using System; class Program{ static void Main(){ string input = null; string choice = input ?? "default_choice"; Console.WriteLine(choice); // default_choice string finalChoice = choice ?? "not_chosen"; Console.WriteLine(finalChoice); // default_choice } }
如果左邊的值不為空,則傳回該值。否則,它會傳回右側的值。換句話說,如果變數的當前值為 null,它允許您將變數初始化為某個預設值。
它取代了 C# 中的以下表達式 -
if (result == null) result = "default_value";
使用下列表達式。
result ??= "default_value";
此運算子對於延遲計算的屬性很有用。例如 -
範例
class Tax{ private Report _lengthyReport; public Report LengthyReport => _lengthyReport ??= CalculateLengthyReport(); private Report CalculateLengthyReport(){ return new Report(); } }
此運算子可讓您安全地呼叫實例上的方法。如果實例為 null,則傳回 null 而不是拋出 NullReferenceException。否則,它只是呼叫該方法。
它取代 C# 中的以下表達式 -
string result = instance == null ? null : instance.Method();
使用下列表達式 -
string result = instance?.Method();
考慮以下範例。
範例
using System; string input = null; string result = input?.ToString(); Console.WriteLine(result); // prints nothing (null)
即時示範
using System; class Program{ static void Main(){ string input = null; string choice = input ?? "default_choice"; Console.WriteLine(choice); // default_choice string finalChoice = choice ?? "not_chosen"; Console.WriteLine(finalChoice); // default_choice string foo = null; string answer = foo?.ToString(); Console.WriteLine(answer); // prints nothing (null) } }
default_choice default_choice
以上是C# 提供哪些運算子來處理空值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!