2012-01-09 1 views
2

J'ai quelques exemples dans mon code CoP Style donne que:comment obtenir flic style d'ignorer une instance spécifique d'une violation

« SA1119: La ligne contient des parenthèses inutiles. »

Maintenant, je suis totalement d'accord avec cela si j'ai une ligne de code qui dit:

int someValue = (((12 + 3) + 5)); 

Cependant quand j'ai quelque chose de plus compliqué, comme:

textXpos = ((((float)this.Width - imageoffset) - textsize.Width)/2); 

Je comprends que je peux réécrire cette comme:

textXpos = (((float)this.Width - imageoffset - textsize.Width)/2); 

Et il va évaluer les mêmes valeurs, mais je trouve le premier un plus facile à lire. Est-il possible de dire à styecop d'ignorer cette instance de l'erreur?

Ou dois-je contourner ce problème en affectant une partie de l'équation aux variables temporaires?

Je ne souhaite pas renvoyer ce code dans une région générée automatiquement car je souhaite que style cop évalue cette section de code.

Merci


Basé sur la suggestion ken2k j'ai essayé les éléments suivants:

using System.Diagnostics.CodeAnalysis; 

. . .

[SuppressMessage("StyleCop.CSharp.MaintainabilityRules", "SA1119:StatementMustNotUseUnnecessaryParenthesis", Justification = "Better for readability.")] 
    public int Testmethod() 
    { 
     int returnValue = (((5 - 5) - 5)/2); 
     return returnValue; 
    } 

Mais cela ne semble pas avoir d'effet? Est-ce que je manque quelque chose?


Répondre

4

Vous pouvez ajouter la déclaration suivante avant l'en-tête de votre méthode:

[SuppressMessage("Microsoft.StyleCop.CSharp.MaintainabilityRules", "SA1119:StatementMustNotUseUnnecessaryParenthesis", Justification = "Better for readability.")] 

Mais les avertissements SA1119 sera ignoré pour toute la méthode.

EDIT: au moins enlever la première et la dernière parenthèse: me

textXpos = (((float)this.Width - imageoffset) - textsize.Width)/2; 
+0

Il n'a jamais eu lieu que cela pourrait être de donner au sujet de la parenthèse en dehors !! D'oh – AidanO

+1

Oui, j'ai le même problème ici. Je pensais que l'équipe Stylecop se débarrassait de la chaîne "Microsoft", mais apparemment pas. Voir la mise à jour – ken2k

+0

Ah, votre réponse était bien meilleure que la mienne: "Il y a un bug dans StyleCop 4.3 et j'ai besoin de passer à la version 4.4 .. Merci, – AidanO

Questions connexes