代码检查:在字符串字面量的一部分中使用 '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日