web-dev-qa-db-fra.com

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 valuenull '(CS0649) (Assembly-CSharp)

Je voudrais désactiver l'avertissement pour ces champs spécifiques uniquement et laisser l'avertissement s'afficher pour les autres classes et les 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?

38
iseeall

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

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 à Supprimer les avertissements "n'est jamais utilisé" et "n'est jamais affecté à" en C # pour une réponse développée.

65
Douglas
//disable warning here
#pragma warning disable 0649

 //foo field declaration

//restore warning to previous state after
#pragma warning restore 0649
7
Alexander Bortnik

Je pense 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
}
6
BMac
public class YouClass
{
#pragma warning disable 649
    string foo;
#pragma warning restore 649
}
3
Hamlet Hakobyan