在 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
廣告