2017-06-20 2 views
0

ReSharperの警告を抑止するために必要な文字列をクラス内の定数として配置したいので、文字列全体を配置する必要はありません。ルール。ReSharperと一緒に[SuppressMessage(...)]で定数を使用できないのはなぜですか?

public class Rules 
{ 
    public const string ReSharper= "ReSharper"; 
    public const string InconsistentNaming = "InconsistentNaming"; 
} 

public class MyClass 
{ 
    [SuppressMessage(Rules.ReSharper, Rules.InconsistentNaming)] 
    protected uint v { get; } 
} 

はReSharperのは、まだ名前が小文字で始まるproperies文句になり、次のように私のメンバーを飾ります。

[SuppressMessage("ReSharper", "InconsistentNaming")] 

のメンバーを帰属させた場合にのみ、ReSharperの警告が表示されなくなります。上記の定数を使ってマナーで動作させる方法はありますか?

+0

あなたはそれが欲しいと思いますが、実行する前に値を取得しなければならないと考えていません(私は定数を知っています:P) – EpicKip

+0

https://stackoverflow.com/questions/33674077/抑止メッセージと一緒に使用する理由は、おそらく同じように聞こえるでしょうか? – mjwills

+0

@mjwills私もその質問をしました – David

答えて

2

ReSharperは、分析を実行し、ソースコードの構文に基づいて警告を報告します。したがって、具体的には"ReSharper""InconsistentNaming"などの文字列トークンを探しています。定数を理解するには、たとえばRules.ReSharperが何であるかを判断して、それが文字列であると判断した場合定数。

後者の解析はずっと遅く、ReSharpers解析のパフォーマンスに影響します。だから、そうしないので、リテラル文字列を指定する必要があります。

関連する問題