Compilerfehler CS0843

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.

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