在 C# 中,兩個問號一起 (??) 是什麼意思?


它是 **空合併** 運算子。空合併運算子 ?? 返回其左運算元的值(如果它不為空);否則,它計算右運算元並返回其結果。如果左運算元計算結果為非空,則 ?? 運算子不會計算其右運算元。

可空型別可以表示一個可能未定義或來自型別域的值。我們可以使用 ?? 運算子在左運算元具有可空型別時返回適當的值。如果我們嘗試將可空值型別分配給不可空值型別而不使用 ?? 運算子,我們將得到編譯時錯誤,如果我們強制轉換它,則將丟擲 InvalidOperationException 異常。

以下是空合併運算子 (??) 運算子的優點:

  • 它用於為可空項(對於值型別和引用型別)定義預設值。

  • 它可以防止執行時 InvalidOperationException 異常。

  • 它幫助我們消除許多冗餘的“if”條件。

  • 它適用於引用型別和值型別。

  • 程式碼變得井井有條且易於閱讀。

示例

 線上演示

using System;
namespace MyApplication{
   class Program{
      static void Main(string[] args){
         int? value1 = null;
         int value2 = value1 ?? 99;
         Console.WriteLine("Value2: " + value2);
         string testString = "Null Coalescing";
         string resultString = testString ?? "Original string is null";
         Console.WriteLine("The value of result message is: " + resultString);
      }
   }
}

輸出

以上示例的輸出如下所示。

Value2: 99
The value of result message is: Null Coalescing

更新於: 2020-08-04

3K+ 次瀏覽

啟動你的 職業生涯

透過完成課程獲得認證

開始學習
廣告