📅  最后修改于: 2023-12-03 14:48:44.150000             🧑  作者: Mango
在 C# 中,“??”是一个空合并运算符,用于在将一个值赋值给一个变量时处理空值情况。
语法:var result = expr1 ?? expr2;
如果 expr1
不为 null
,则 result
的值为 expr1
的值,否则 result
的值为 expr2
的值。
string firstName = null;
string lastName = "Doe";
string fullName = firstName ?? lastName;
Console.WriteLine(fullName); // 输出 "Doe"
在上面的例子中,由于 firstName
为 null
,所以 fullName
的值为 lastName
的值。
除了对单个变量进行空值处理,还可以对方法的返回值进行空值处理。
string result = GetValue() ?? "default value";
string firstName = null;
string lastName = "Doe";
string fullName = firstName ?? lastName.ToUpper();
Console.WriteLine(fullName); // 输出 "DOE"
在上面的例子中,虽然 firstName
为 null
,但由于 lastName
不为空,所以 fullName
的值为 lastName
的大写形式。
int? num1 = null;
int num2 = 0;
int result = num1 ?? num2; // 合法
int num3 = 1;
int num4 = num3 ?? 2; // 不合法
空合并运算符(“??”)是 C# 中的一个非常方便的工具,能够极大地简化代码,处理空值情况。当你需要进行空值处理时,一定要记得使用空合并运算符。