📅  最后修改于: 2023-12-03 15:29:46.970000             🧑  作者: Mango
在 C# 语言中,双问号 ??
是一个特殊的运算符,被称为 null 合并运算符(null coalescing operator)。它的作用是当一个值为 null 时,返回一个默认值,否则返回这个值本身。
int? a = null;
int b = a ?? 10; // 如果 a 为 null,b 将被赋值为 10,否则 b 将被赋值为 a 的值
可以看出,双问号运算符的优先级比赋值运算符低,但比三目运算符高。
除了用于处理 null 值,双问号运算符还可以用于处理其他类型的值。例如,可以使用双问号运算符来处理空字符串:
string str = "";
string result = str ?? "默认字符串";
上面的代码中,如果 str
是空字符串,则 result
将被赋值为 "默认字符串"
,否则 result
将被赋值为 str
的值。
除了上述用法之外,还可以使用多个双问号运算符,实现链式 null 合并。例如,可以使用以下代码:
string result = str1 ?? str2 ?? "默认字符串";
上面的代码中,如果 str1
是 null,则检查 str2
是否是 null,如果 str2
是 null,则 result
将被赋值为 "默认字符串"
,否则 result
将被赋值为 str2
的值。
总之,双问号运算符是 C# 语言中非常实用的一个运算符,可以帮助开发人员更加方便地处理 null 值和其他类型的默认值。