Freigeben über


Compilerfehler CS0843

Aktualisiert: November 2007

Fehlermeldung

Das dahinter liegende Feld für die automatisch implementierte 'Name'-Eigenschaft muss vollständig zugewiesen werden, bevor die Steuerung wieder an den Aufrufer übergeben wird. Rufen Sie den Standardkonstruktor aus einem Konstruktorinitialisierer auf.
Backing field for automatically implemented property 'name' must be fully assigned before control is returned to the caller. Consider calling the default constructor from a constructor initializer.

Um einer automatisch implementierten Eigenschaft einen Wert aus einem Konstruktor zuzuweisen, müssen Sie zuerst den Standardkonstruktor aufrufen, um das Objekt zu erstellen.

So beheben Sie diesen Fehler

  • Fügen Sie dem Standardkonstruktor in einem Konstruktorinitialisierer einen Aufruf hinzu, wie im folgenden Beispiel dargestellt. Beachten Sie die Verwendung von : this(). Weitere Informationen hierzu finden Sie unter this (C#-Referenz).

Beispiel

Durch den folgenden Code wird der Fehler CS0843 generiert:

// cs0843.cs
struct S
{
    public int AIProp { get; set; }
    public S(int i){} //CS0843
    // Try the following lines instead.
   // public S(int i) : this()
   // {
   //     AIProp = i;
   // }
}

class Test
{
    static int Main()
    {
        return 1;
    }
}