2012-01-09 12 views
2

私は、スタイルの警官が出しているコードにいくつかのインスタンスがあります。スタイル違反の特定のインスタンスを無視する方法

"SA1119:行に不要なカッコが含まれています。私のような、より複雑なものがあるとき

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

は、しかし:

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

を私はこれを書き換えることができることを理解し、私が言うのコードの行を持っている場合

今、私は完全にこれに同意しますlike:

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

そして、同じ値に評価されますが、私は最初の1つは読みやすい。 styecopにこのエラーのインスタンスを無視するよう指示する方法はありますか?

または、これを回避するには、式の一部を一時変数に代入する必要がありますか?

私はこのコードセクションを評価するためにスタイルの警官が欲しいので、自動生成された領域にこのコードをラップしたくありません。

using System.Diagnostics.CodeAnalysis; 

:ken2kでの提案に基づいて

おかげ


は、私は、次の試してみました。 。 。

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

しかし、これは効果がないようですか?何か不足していますか?


答えて

4

あなたはあなたの方法のヘッダの前に次のステートメントを追加することができます。

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

しかし、SA1119は、全体の方法では無視されます警告。

EDIT:少なくとも最初と最後のかっこを削除します。

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

外括弧について配っされるかもしれないことを私に起こったことはありません! D'oh – AidanO

+1

はい、私はここで同じ問題を抱えています。私はStylecopチームが "Microsoft"の文字列を取り除いたと思ったが、明らかにそうではなかった。更新された回答をご覧ください。 – ken2k

+0

あなたの答えは「StyleCop 4.3にバグがあり、4.4にアップグレードする必要がありました。ありがとう。 – AidanO

関連する問題