Číst v angličtině

Sdílet prostřednictvím


Chyba kompilátoru CS0844

Nelze použít místní proměnnou name, než je deklarována. Deklarace místní proměnné skryje pole name.

Identifikátor může mít v daném bloku pouze jeden význam. Místní proměnné, které mají stejný název jako pole třídy, mohou skrýt pole zavedením druhého významu identifikátoru. Kompilátor proto vygeneruje chybu při odkazování na pole třídy v metodě a potom deklaruje místní proměnnou stejným názvem.

Oprava této chyby

  • Umožňuje this.num odkazovat na pole třídy.

  • Zadejte místní proměnnou jiný název než pole třídy.

Příklad

Následující kód vygeneruje CS0844:

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

Oprava chyby pomocí odkazu this.num na pole třídy

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

Opravte chybu zadáním jiného názvu místní proměnné z pole třídy.

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