JetBrains Rider 2025.2 Help

代码检查:“??” 条件已知为 null 或非 null

如果您想根据标识符的可空性分配值、传递参数或从方法返回值,在这些情况下,您可以使用的最清晰语法是 ?? (null 合并)运算符。

空合并表达式的工作原理如下。 首先计算左操作数,如果其为 null,则计算右操作数,结果成为整个表达式的结果。

然而,多余的空合并表达式会产生无效代码并妨碍可读性。 根据 空合并运算符 运算符的逻辑,使用 null 作为右操作数没有意义。 如下所示,JetBrains Rider 建议删除右操作数 null 以及 空合并运算符 运算符,因为如果 newCategory 为 null,则无论如何都会将 null 分配给 类别

public class Customer { public string Category { get; set; } private void ChangeCategory(string newCategory) { Category = newCategory ?? null; } /* … */ }
public class Customer { public string Category { get; set; } private void ChangeCategory(string newCategory) { Category = newCategory; } /* … */ }

空合并运算符的另一种多余情况是左操作数永远不会为 null。 在这种情况下,右操作数永远不会被访问,JetBrains Rider 建议删除无法访问的代码:

string name = "John"; Console.WriteLine(name ?? "empty");
string name = "John"; Console.WriteLine(name);
最后修改日期: 2025年 9月 26日