代码检查:在字符串文字的一部分中使用 'nameof' 表达式引用名称
在 .NET 库中,有许多方法被设计为接受类型、成员或变量的 名称作为参数。 最常见的示例之一是 ArgumentNullException(string paramName)。 如果您使用字符串文字作为此类方法的参数,当文字拼写错误或在相应符号重命名时未更改,可能会导致错误。 不对应任何有效符号的字符串文字不会被编译器捕获。
nameof 运算符在 C# 6.0 中引入,解决了这个问题——它允许捕获作用域内符号的字符串名称。
In the example below, ReSharper suggests the replacement of the string literal “order” in the argument of the ArgumentNullException() with the 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月 27日