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

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中的“无法解析符号”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3842061/

10-10 13:47