Erro do Compilador CS0844
Não é possível usar a variável local "name" antes de declará-la. A declaração da variável local oculta o campo "name".
Um identificador pode ter apenas um significado em determinado bloco. Variáveis locais que têm o mesmo nome que 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 com o 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 seguinte código gera o erro 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: