Partager via


Erreur du compilateur CS0844

Mise à jour : novembre 2007

Message d'erreur

Impossible d'utiliser la variable locale 'nom' avant qu'elle ne soit déclarée. La déclaration de la variable locale masque le champ 'nom'.
Cannot use local variable 'name' before it is declared. The declaration of the local variable hides the field 'name'.

Un identificateur ne peut avoir qu'une seule signification dans un bloc donné. Une variable locale qui porte le même nom qu'un champ de classe peut masquer ce champ en introduisant une deuxième signification pour l'identificateur. Le compilateur génère donc une erreur lorsque vous faites référence à un champ de classe dans une méthode, puis déclarez une variable locale avec le même nom.

Pour corriger cette erreur

  • Utilisez this.num pour faire référence au champ de classe.

  • Attribuez à la variable locale un nom différent de celui du champ de classe.

Exemple

Le code suivant génère CS0844 :

class Test
    {
        int num;
        public void TestMethod()
        {
            num = 5; // CS0844
            int num = 6;        }
        public static int Main()
        {
            return 1;
        }
    }