C# ?? 空合并運算符用法小結
更新時間:2025年11月27日 09:25:36 作者:張工想跑路
空合并運算符用于檢查左側操作數是否為 null,本文主要介紹了C# ?? 空合并運算符用法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
空合并運算符(??)的基本用法
空合并運算符(??)用于檢查左側操作數是否為 null。如果左側操作數為 null,則返回右側操作數的值;否則返回左側操作數的值。語法形式為:
result = leftOperand ?? rightOperand;
示例:
string name = null; string defaultName = "John Doe"; string displayName = name ?? defaultName; // 結果為 "John Doe"
空合并賦值運算符(??=)
C# 8.0 引入了空合并賦值運算符(??=),用于簡化對變量為 null 時的賦值操作。如果左側操作數為 null,則將右側操作數的值賦給左側操作數。
leftOperand ??= rightOperand;
示例:
List<int> numbers = null; numbers ??= new List<int>(); // 若 numbers 為 null,則初始化為新列表
鏈式空合并運算符
可以連續(xù)使用多個 ?? 運算符,從左到右依次檢查每個操作數是否為 null,返回第一個非 null 的值。
string value1 = null; string value2 = null; string value3 = "Hello"; string result = value1 ?? value2 ?? value3 ?? "Default"; // 結果為 "Hello"
與三元運算符的結合
空合并運算符可以與條件運算符(?:)結合使用,處理更復雜的邏輯。
string name = null; string result = name != null ? name : "Default"; // 等價于 name ?? "Default"
在屬性初始化中的應用
空合并運算符常用于屬性的初始化,確保屬性不為 null。
private string _name;
public string Name
{
get => _name ?? "Default";
set => _name = value;
}
與可空值類型的結合
可空值類型(如 int?)也可以使用空合并運算符提供默認值。
int? nullableInt = null; int actualInt = nullableInt ?? 0; // 若 nullableInt 為 null,返回 0
注意事項
- 右側操作數可以是常量、變量或表達式,但會在左側操作數為
null時才會計算。 - 空合并運算符不會對值類型進行隱式轉換,需確保左右操作數類型兼容。
- 在 C# 9.0 及以上版本,可與模式匹配結合使用,實現更靈活的邏輯。
到此這篇關于C# ?? 空合并運算符用法小結的文章就介紹到這了,更多相關C# ?? 空合并運算符內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

