📜  c# 双问号 - C# (1)

📅  最后修改于: 2023-12-03 15:29:46.970000             🧑  作者: Mango

C# 双问号

在 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 值和其他类型的默认值。