在Resharper中忽略“无法解析符号”

时间:2010-10-01 18:30:20

标签: c# resharper

说我有这样的方法签名:

protected override void Initialize(params object[] parameters)

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

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

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

2 个答案:

答案 0 :(得分:1)

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

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]);
    }
    ...
}

答案 1 :(得分:0)

我没有在选项中看到任何可以控制它的内容,至少没有在选项对话框中显示。您是否尝试过在Resharper论坛上提问?他们在那里非常敏感。