Lire en anglais

Partager via


Erreur du compilateur CS0844

Impossible d’utiliser la variable locale 'name' avant de la déclarer La déclaration de la variable locale masque le champ 'name'.

Un identificateur ne peut avoir qu’une seule signification dans un bloc donné. Les variables locales qui portent le même nom en tant que champs de classe peuvent masquer le champ en introduisant une deuxième signification pour l’identificateur. Ainsi, le compilateur génère une erreur quand vous faites référence à un champ de classe dans une méthode, puis déclarez une variable locale par le même nom.

Pour corriger cette erreur

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

  • Donnez à la variable locale un autre nom que celui du champ de classe.

Exemple

Le code suivant génère l’erreur CS0844 :

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

Corriger l’erreur en utilisant this.num pour faire référence au champ de classe

C#
class Test  
    {  
        int num;  
        public void TestMethod()  
        {  
            this.num = 5; // Error fixed.
            int num = 6;
        }  
        public static int Main()  
        {  
            return 1;  
        }  
    }  

Corrigez l’erreur en donnant à la variable locale un nom différent du champ de classe

C#
class Test  
    {  
        int num;  
        public void TestMethod()  
        {  
            num = 5; // Error fixed.
            int num2 = 6;
        }  
        public static int Main()  
        {  
            return 1;  
        }  
    }