JetBrains Rider 2025.2 Help

代码检查:在字符串字面量的一部分中使用 'nameof' 表达式引用名称

在 .NET 库中,有许多方法被设计为接受类型、成员或变量的 名称作为参数。 最常见的示例之一是 ArgumentNullException(string paramName)。 如果您使用字符串字面量作为此类方法的参数,当字面量拼写错误或在相应符号重命名时未更改,可能会导致错误。 不对应任何有效符号的字符串字面量不会被编译器捕获。

nameof 运算符在 C# 6.0 中引入,解决了这个问题——它允许捕获作用域内符号的字符串名称。

在下面的示例中,JetBrains Rider 建议将参数中的字符串字面量 "订单" 替换为 ArgumentNullException()nameof(order)。 结果是相同的: nameof(order) 返回字符串 'order',但使用 nameof 后,您的代码变得不易出错。

public void OrderErrorHandler(object order) { if (order == null) throw new ArgumentNullException("order"); /* ... */ }
public void OrderErrorHandler(object order) { if (order == null) throw new ArgumentNullException(nameof(order)); /* ... */ }
最后修改日期: 2025年 9月 26日