Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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.
Para corregir este error
Use
this.numpara hacer referencia al campo de clase.Asigne a la variable local un nombre diferente al del campo de clase.
Ejemplo
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;
}
}
Corrija el error mediante this.num para hacer referencia al campo de clase
class Test
{
int num;
public void TestMethod()
{
this.num = 5; // Error fixed.
int num = 6;
}
public static int Main()
{
return 1;
}
}
Corrija el error asignando a la variable local un nombre diferente del campo de clase
class Test
{
int num;
public void TestMethod()
{
num = 5; // Error fixed.
int num2 = 6;
}
public static int Main()
{
return 1;
}
}