C# 中空合并运算符 (??) 和空条件运算符 (?.) 的用法

· 约 3 分钟读完 · 第 98 / 183 章

推荐答案

本题详细解读

空合并运算符 (??)

空合并运算符 (??) 用于处理可能为 null 的值。如果左侧的操作数为 null,则返回右侧的操作数;否则返回左侧的操作数。这个运算符通常用于为可能为 null 的变量提供默认值。

语法:

示例:

在这个例子中,name 是 null,因此 ?? 运算符返回右侧的操作数 "Guest",并将其赋值给 displayName。

空条件运算符 (?.)

空条件运算符 (?.) 用于在访问对象的成员之前检查对象是否为 null。如果对象为 null,则整个表达式的结果为 null,而不会抛出 NullReferenceException 异常。

语法:

示例:

在这个例子中,person 是 null,因此 ?. 运算符不会尝试访问 Name 属性,而是直接返回 null,并将其赋值给 personName。

结合使用

空合并运算符和空条件运算符可以结合使用,以提供更简洁和安全的代码。

示例:

在这个例子中,如果 person 是 null 或者 person.Name 是 null,?. 运算符会返回 null,然后 ?? 运算符会返回 "Unknown" 作为默认值。