0

FxCop は現在、特定のメソッドに対して同じ規則違反を報告しています。構造体を作成せずに呼び出し元に 2 つの値を返したいため、2 つの out パラメーターがあります。匿名型で問題が解決するのだろうかと思いますが、メソッドを作成した時点では匿名型について知りませんでした。

とにかく、CheckId CA1021 がパラメーターごとに 1 回報告されています。FxCop から SuppressMessage テキストをコピーしたところ、各メッセージの Id が異なることに気付きました! 私には、CheckIdだけが必要なように思われるので...

  1. Id は何に使用されますか? それに関する情報をオンラインで見つけることができませんでした。
  2. IDは変わらないの?そうしないと、SuppressMessage が希望どおりに機能しないと思います
  3. SuppressMessage 属性を指定して、すべてのIdを抑制する方法はありますか?
4

1 に答える 1

1

From In Source 抑制の概要

属性はメソッドにのみ適用でき、メソッド本体に埋め込むことはできません。ただし、識別子をメッセージ ID として指定して、メソッド内で複数回発生した違反を区別することができます。

つまり、MessageId は、スコープ内のエラーの 1 つのインスタンスを抑制するために使用されます。これは、誤って同じメソッド内で再びエラーを導入することが心配で、FxCop でその新しい導入をキャッチしたい場合 (または、問題が発生するたびに異なる理由を指定したい場合) に便利です。これらのエラーをさらに導入することを恐れていない場合 (または気にしない場合) で、同じ理由がある場合は、Suppress ステートメントで MessageId を省略できます[SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters")]

于 2010-03-30T00:07:13.043 に答える