C#中的??運算子(空合併運算子)為null運算元提供備用值:檢查運算元是否為null。如果x不為null,則傳回x的值。如果x為null,則傳回備用值表達式y。
C# 中的?? 運算子
C# 中的?? 運算符,也稱為空合併操作符,用於在操作數為空(null)時提供備用值。
語法
<code class="c#">x ?? y</code>
其中:
#x
:要檢查是否為 null 的表達式。 y
:如果 x
為 null,則傳回的備用值表達式。 工作原理
?? 運算子首先檢查 x
是否為 null。如果不是,它將傳回 x
的值。但是,如果 x
為 null,它將傳回備用值表達式 y
的值。
範例
<code class="c#">string name = null; string defaultName = "Unknown"; string fullName = name ?? defaultName; // fullName 将为 "Unknown",因为 name 为 null</code>
如何使用
?? 操作符通常用於防止空引用異常,並在物件或變數為null 時提供預設值。它可以使程式碼更加簡潔和安全。
與委託比較
?? 運算子的行為類似於條件委託,但它更簡潔且更容易閱讀。以下程式碼使用委託實現相同的功能:
<code class="c#">string name = null; string defaultName = "Unknown"; Func<string, string> getName = (n) => n ?? defaultName; string fullName = getName(name);</code>
優點
缺點
x
不是引用類型,或y
的型別與x
不相容。 以上是c#中??是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!