ReSharper 2025.2 Help

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