2010-10-01 54 views
2
“无法解析符号”

说我有一个方法签名是这样的:忽略ReSharper的

protected override void Initialize(params object[] parameters) 

...和物体能准确地处理所有的参数。当我做这些参数的验证(说它们设定为类的字段),一个是null,我希望能够从ReSharper的做这样的事情没有一个警告:

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

在我的应用程序的上下文,这个警告是好的。有谁知道我需要忽略哪些规则?

+0

作为R·6(或6.1?),这可以通过评论来完成:'// ReSharper的禁用NotResolvedInText'(或设置检查选项)。 – 2012-02-25 01:40:20

回答

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

我没有看到任何可以控制此选项的选项,至少不会显示在选项对话框中。你有没有试过在Resharper论坛上提问?他们在那里非常敏感。