首頁  >  文章  >  後端開發  >  C# 提供哪些運算子來處理空值?

C# 提供哪些運算子來處理空值?

WBOY
WBOY轉載
2023-09-23 17:57:021159瀏覽

C# 提供哪些运算符来处理空值?

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中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除