Compilerfehler CS0844
Aktualisiert: November 2007
Fehlermeldung
Die lokale Variable 'Name' kann erst verwendet werden, nachdem sie deklariert wurde. Bei der Deklaration der lokalen Variablen wird das Feld 'Name' verborgen.
Cannot use local variable 'name' before it is declared. The declaration of the local variable hides the field 'name'.
Ein Bezeichner kann in einem bestimmten Block nur eine Bedeutung haben. Lokale Variablen, die denselben Namen wie Klassenfelder haben, können das Feld verbergen, indem der Bezeichner eine zweite Bedeutung erhält. Daher generiert der Compiler einen Fehler, wenn Sie auf ein Klassenfeld in einer Methode verweisen und dann eine lokale Variable mit demselben Namen deklarieren.
So beheben Sie diesen Fehler
Verwenden Sie this.num, um auf das Klassenfeld zu verweisen.
Geben Sie der lokalen Variable einen anderen Namen als dem Klassenfeld.
Beispiel
Durch den folgenden Code wird der Fehler CS0844 generiert:
class Test
{
int num;
public void TestMethod()
{
num = 5; // CS0844
int num = 6; }
public static int Main()
{
return 1;
}
}