Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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.
Para corrigir este erro
Use
this.numpara fazer referência ao campo de classe.Dê à variável local um nome diferente do campo de classe.
Exemplo
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;
}
}
Corrigir o erro usando this.num para se referir ao campo de classe
class Test
{
int num;
public void TestMethod()
{
this.num = 5; // Error fixed.
int num = 6;
}
public static int Main()
{
return 1;
}
}
Corrigir o erro atribuindo à variável local um nome diferente do campo de classe
class Test
{
int num;
public void TestMethod()
{
num = 5; // Error fixed.
int num2 = 6;
}
public static int Main()
{
return 1;
}
}