x ?? y其中:x:要检查是否为 null 的表达式。y:如果 x 为 null,则返回的备用值表达式。工作原理?? 操作符首先检查 x 是否为 null。如果不是,它将返回 x 的值。但是,如果 x 为 null,它将返回备用值表达">

c#中??是什么意思

来源:这里教程网 时间:2026-02-21 16:47:57 作者:

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
不兼容。
无法指定多个备用值。

相关推荐