web-dev-qa-db-ja.com

C#-カスタムの廃止された警告を選択的に抑制する

特定のメソッドが使用されている場合に警告を表示するために、(仲間のプログラマーが示唆したように)Obsolete属性を使用しています。

使用が正当化されるポイントでCodeAnalysis 'SuppressMessageに似た警告を抑制する方法はありますか?

ありがとうございました!

編集

これは[Obsolete("Some message")]用です。警告に関する詳細を含める必要があるためです。ただし、#pragma warning disable 612属性にメッセージを追加すると、[Obsolete]は機能しなくなります...

編集2

正しい警告番号が見つかりました-廃止された属性の後にメッセージがある場合は618です。

だから私がやりたいことをする:

#pragma warning disable 618

そして、呼び出しの後

#pragma warning restore 618

私を正しい方向に向けてくれたJared ParとJon Skeetに感謝します!

201
Alex

#pragma warning disableを使用:

using System;

class Test
{
    [Obsolete("Message")]
    static void Foo(string x)
    {
    }

    static void Main(string[] args)
    {
#pragma warning disable 0618
        // This one is okay
        Foo("Good");
#pragma warning restore 0618

        // This call is bad
        Foo("Bad");
    }
}

「悪い」コールを見逃さないように、警告を後で復元します。

244
Jon Skeet

intentは、廃止されたusageの警告を無効にすることです。コンストラクトは[Obsolete]または[Obsolete("Message")]でマークされます。したがって、 CS0612andCS0618 の両方を使用します。

#pragma warning disable 612, 618 

...

#pragma warning restore 612, 618 
123
Jordão

最初に警告/エラー番号を取得する方法を示します。

  1. プロジェクトを再構築します。
  2. Outputウィンドウに移動します。
  3. 抑制したい警告/エラーの行を調べます。
    例えば:
    C:\Users\Username\Documents\Visual Studio 2010\Projects\Projectname\Classname.cs(203,7): warning CS0162: Unreachable code detected
  4. 数字の部分をコピーしますafter "CS"。
  5. 次に、Jon Skeet says として進みます。

(より良いalwaysJon Skeet のように進みます…)

18
Aaron Thoma

#pragma警告無効ディレクティブを探しています

基本的に、.csファイルの呼び出しサイトの上に次のコマンドを追加します。

#pragma warning disable 612
SomeMethodCall

612は、廃止されたメソッドを呼び出すためのエラーメッセージIDです

9
JaredPar