2010-10-01 4 views
2

Dire que j'ai une signature de méthode comme ceci:Ignore « ne peut pas résoudre le symbole » dans ReSharper

protected override void Initialize(params object[] parameters) 

... et l'objet peut gérer avec précision tous les paramètres. Quand je fais la validation de ces paramètres (disons les mettre aux champs de la classe) et un est null, je voudrais être en mesure de faire quelque chose comme ça, sans un avertissement de ReSharper:

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

Dans le contexte de mon application, cet avertissement est ok. Est-ce que quelqu'un sait quelle règle je dois ignorer?

+0

A partir de R # 6 (ou 6.1?) Cela peut être fait avec le commentaire: // 'ReSharper désactiver NotResolvedInText' (ou définir les options d'inspection). –

Répondre

1

Avez-vous essayé de mettre les noms des paramètres dans un tableau de chaînes et d'appeler statique en lecture seule

throw new ArgumentNullException(initializationParameterNames[5]); 

?

Vous pouvez le faire comme ceci:

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

Je ne vois rien dans les options qui contrôlent cela, du moins pas affiché dans la boîte de dialogue d'options. Avez-vous essayé de demander sur les forums Resharper? Ils sont très réactifs là-bas.

Questions connexes