Error del compilador CS0844
No se puede usar la variable 'name' antes de declararla. La declaración de la variable local oculta el campo 'name'.
Un identificador solo puede tener un significado en un bloque determinado. Las variables locales que tengan el mismo nombre que los campos de clase pueden ocultar el campo si introducen un segundo significado para el identificador. Por lo tanto, el compilador genera un error cuando se hace referencia a un campo de clase en un método y, después, se declara una variable local con el mismo nombre.
Use
this.num
para hacer referencia al campo de clase.Asigne a la variable local un nombre diferente al del campo de clase.
El código siguiente genera el error 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;
}
}
Comentarios de .NET
.NET es un proyecto de código abierto. Seleccione un vínculo para proporcionar comentarios: