Freigeben über


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;
        }
    }