Désactiver / supprimer l'avertissement CS0649 en C# pour un champ spécifique de classe

J'ai quelques champs dans une Classe C# que j'initialise en utilisant la réflexion. Le compilateur affiche un avertissement CS0649 pour eux:

Champ foo' is never assigned to, and will always have its default value null ' (CS0649) (Assembly-Csharp)

Je voudrais désactiver l'avertissement à ces domaines, et de laisser l'avertissement est affiché pour les autres classes et d'autres champs de cette classe. Il est possible de désactiver CS0649 pour l'ensemble du projet, y a-t-il quelque chose de plus fin?

32
demandé sur Cœur 2012-12-05 19:33:20

4 réponses

Vous pouvez utiliser #pragma warning pour désactiver puis réactiver particulier avertissements:

public class MyClass
{
    #pragma warning disable 0649

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

    #pragma warning restore 0649

    // rest of class
}

Reportez-vous à suppression des avertissements "is never used" Et "is never assigned to" EN C# pour une réponse étendue.

57
répondu Douglas 2017-05-23 12:02:14
//disable warning here
#pragma warning disable 0649

 //foo field declaration

//restore warning to previous state after
#pragma warning restore 0649
7
répondu Alexander Bortnik 2012-12-05 16:29:53

Je crois qu'il vaut la peine de noter que l'avertissement peut également être supprimé en utilisant un initialiseur de champ. Cela encombre beaucoup moins votre code.

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

    // rest of class
}
5
répondu BMac 2016-10-28 18:23:24
public class YouClass
{
#pragma warning disable 649
    string foo;
#pragma warning restore 649
}
3
répondu Hamlet Hakobyan 2012-12-05 15:39:15