Erro do compilador CS0844
Não é possível usar a variável local 'name' antes de ser declarada. A declaração da variável local oculta o campo 'nome'.
Um identificador só pode ter um significado num determinado bloco. As variáveis locais que têm o mesmo nome que os campos de classe podem ocultar o campo introduzindo um segundo significado para o identificador. Portanto, o compilador gera um erro quando você se refere a um campo de classe em um método e, em seguida, declara uma variável local pelo mesmo nome.
Use
this.num
para fazer referência ao campo de classe.Dê à variável local um nome diferente do campo de classe.
O código a seguir gera 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;
}
}
Comentários do .NET
O .NET é um projeto código aberto. Selecione um link para fornecer comentários: