53

リフレクションを使用して初期化するC#クラスにいくつかのフィールドがあります。コンパイラは、CS0649の警告を表示します。

フィールドfoo' is never assigned to, and will always have its default valuenull'(CS0649)(アセンブリ-CSharp)

これらの特定のフィールドに対してのみ警告を無効にし、他のクラスおよびこのクラスの他のフィールドに対しては警告を表示させたいと思います。プロジェクト全体でCS0649を無効にすることは可能ですが、もっと細かいものはありますか?

4

5 に答える 5

94

#pragma warning特定の警告を無効にしてから再度有効にするために使用できます。

public class MyClass
{
    #pragma warning disable 0649

    // field declarations for which to disable warning
    private object foo;

    #pragma warning restore 0649

    // rest of class
}

拡張された回答については、C#での「使用されない」および「割り当てられない」警告の抑制を参照してください。

于 2012-12-05T15:36:04.237 に答える
16

インライン初期化を使用することで警告を抑制できることも注目に値します。これにより、コードがすっきりします。

public class MyClass
{
    // field declarations for which to disable warning
    private object foo = null;

    // rest of class
}
于 2016-10-28T18:23:24.737 に答える
9
//disable warning here
#pragma warning disable 0649

 //foo field declaration

//restore warning to previous state after
#pragma warning restore 0649
于 2012-12-05T15:36:14.923 に答える
5
public class YouClass
{
#pragma warning disable 649
    string foo;
#pragma warning restore 649
}
于 2012-12-05T15:39:15.123 に答える
1

(スクリプトごとではなく)プロジェクト内のすべての警告を無効にする場合は、次のようにします。

YOUR_PROJECT_NAME / Assetsディレクトリにmcs.rsp(エディタスクリプト用)というテキストファイルを次の内容で挿入します(例)。

-nowarn:0649

(必要な警告に一致するように番号を変更できます)

元の回答

注:Unityを使用している場合、これはUnityコンソールの警告を無効にしません(私はまだそれらを削除する方法を調査しています)

詳細については、Unityのドキュメントをご覧ください。

于 2019-11-13T17:45:32.987 に答える