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

WBOY
發布: 2023-09-23 17:57:02
轉載
1159 人瀏覽過

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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板