Błąd kompilatora CS0844
Nie można użyć zmiennej lokalnej "name", zanim zostanie zadeklarowana. Deklaracja zmiennej lokalnej ukrywa pole "name".
Identyfikator może mieć tylko jedno znaczenie w danym bloku. Zmienne lokalne, które mają taką samą nazwę jak pola klasy, mogą ukryć pole, wprowadzając drugie znaczenie dla identyfikatora. W związku z tym kompilator generuje błąd podczas odwoływania się do pola klasy w metodzie, a następnie deklaruje zmienną lokalną o tej samej nazwie.
Użyj
this.num
polecenia , aby odwołać się do pola klasy.Nadaj zmiennej lokalnej inną nazwę od pola klasy.
Poniższy kod generuje CS0844:
class Test
{
int num;
public void TestMethod()
{
num = 5; // CS0844
int num = 6;
}
public static int Main()
{
return 1;
}
}
class Test
{
int num;
public void TestMethod()
{
this.num = 5; // Error fixed.
int num = 6;
}
public static int Main()
{
return 1;
}
}
class Test
{
int num;
public void TestMethod()
{
num = 5; // Error fixed.
int num2 = 6;
}
public static int Main()
{
return 1;
}
}
Opinia o produkcie .NET
.NET to projekt typu open source. Wybierz link, aby przekazać opinię: