2012-12-05 4 views
28

リフレクションを使用して初期化するC#クラスのフィールドがいくつかあります。コンパイラは、彼らのためにCS0649の警告を示しています。クラスの特定のフィールドに対してC#の警告CS0649を無効/抑制します

フィールドfoo' is never assigned to, and will always have its default valueヌル」(CS0649)(組立-CSHARP)

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

答えて

51

あなたが特定の警告を無効にしてから再度有効にする#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 
} 

が展開答えをSuppressing “is never used” and “is never assigned to” warnings in C#を参照してください。

+1

先行ゼロは必須ではありませんか? – SeToY

+0

@ SeToY:それに気づいてくれてありがとう。一定。 – Douglas

+0

@ SeToY:実際は、必要ありません。 – Douglas

6
//disable warning here 
#pragma warning disable 0649 

//foo field declaration 

//restore warning to previous state after 
#pragma warning restore 0649 
3
public class YouClass 
{ 
#pragma warning disable 649 
    string foo; 
#pragma warning restore 649 
} 
+0

5分前に投稿されていない質問解決策に回答が追加されますか? – SeToY

+3

彼はたぶん最初の答えが見えなかったでしょう。とにかくありがとう:) – iseeall

4

は、私はそれはまた、フィールド初期化子を使用することによって抑制することが可能と警告が注目に値しますと信じています。これにより、コードがずっと小さくなります。

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

    // rest of class 
} 
関連する問題