Lezen in het Engels

Delen via


Compilerfout CS0844

Kan geen lokale variabele 'naam' gebruiken voordat deze wordt gedeclareerd. De declaratie van de lokale variabele verbergt het veld 'naam'.

Een id kan slechts één betekenis hebben in een bepaald blok. Lokale variabelen met dezelfde naam als klassevelden kunnen het veld verbergen door een tweede betekenis voor de id in te voeren. Daarom genereert de compiler een fout wanneer u naar een klasseveld in een methode verwijst en vervolgens een lokale variabele declareert met dezelfde naam.

Deze fout corrigeren

  • Gebruik this.num dit om te verwijzen naar het klasseveld.

  • Geef de lokale variabele een andere naam dan het klasseveld.

Opmerking

Met de volgende code wordt CS0844 gegenereerd:

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

Corrigeer de fout door this.num te verwijzen naar het klasseveld

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

Corrigeer de fout door de lokale variabele een andere naam te geven dan het klasseveld

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