c# - 在 Resharper 中忽略 "Cannot resolve symbol"

标签 c# resharper

假设我有一个这样的方法签名:

protected override void Initialize(params object[] parameters)

...并且该对象可以准确处理所有参数。当我验证这些参数(比如将它们设置为类的字段)并且其中一个是 null 时,我希望能够在没有来自 ReSharper 的警告的情况下执行这样的操作:

if (parameters[5] == null)
    /* Yields:  Cannot resolve symbol 'knownParameterName' */
    throw new ArgumentNullException("knownParameterName");

在我的应用程序上下文中,此警告是正常的。有谁知道我需要忽略什么规则?

最佳答案

您是否尝试过将参数名称放入静态只读字符串数组并调用

throw new ArgumentNullException(initializationParameterNames[5]);

?

你可以这样做:

protected override void Initialize(params object[] parameters) 
{
    for (int paramIndex = 0; paramIndex < initializationParameterNames.Length; paramIndex++)
    {
        if (parameters.Length <= paramIndex)
            throw new ArgumentException("Missing " + initializationParamterNames[paramIndex]);
        if (parameters[paramIndex] == null)
            throw new ArgumentNullException(initializationParameterNames[paramIndex]);
    }
    ...
}

关于c# - 在 Resharper 中忽略 "Cannot resolve symbol",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3842061/

相关文章:

c# - 字符的正则表达式

c# - 是否可以使用 CSharpCodeProvider 从 .net3.5 应用程序定位 .net4 编译器?

C# - ReSharper 9.x 标记代码带有新警告 - "Inconsistent synchronization on field"

c# - 在直接调用委托(delegate)的情况下如何缓解 "Access to modified closure"

c# - 排除以特定字符开头的正则表达式匹配

c# - 使用 C# 保护用户密码 - Rfc2898DeriveBytes 与 SHA512

c# - 如何从 C# 代码创建 .chm 文件?

c# - 我如何获得 Resharper 中止测试的原因?

c# - 如何使用 ReSharper 创建 NUnit 测试?

c# - "MouseDown+=new MouseEventHandler(mouseDown)"和 MouseDown+=mouseDown 有什么区别