2010-10-01 52 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論壇上提問?他們在那裏非常敏感。