Leggere in inglese

Condividi tramite


Errore del compilatore CS0844

Non è possibile usare la variabile locale 'name' prima che sia dichiarata. La dichiarazione della variabile locale nasconde il campo 'name'.

Un identificatore può avere solo uno significato in un blocco specificato. Le variabili locali che hanno lo stesso nome dei campi della classe possono nascondere il campo introducendo un secondo significato per l'identificatore. Il compilatore genera quindi un errore quando si fa riferimento a un campo della classe in un metodo e si dichiara quindi una variabile locale con lo stesso nome.

Per correggere l'errore

  • Usare this.num per fare riferimento al campo della classe.

  • Assegnare alla variabile locale un nome diverso dal campo della classe.

Esempio

Il codice seguente genera l'errore CS0844:

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

Correggere l'errore usando this.num per fare riferimento al campo della classe

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

Correggere l'errore assegnando alla variabile locale un nome diverso dal campo della classe

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