Compilerfehler CS0843

Das dahinter liegende Feld für die automatisch implementierte Eigenschaft "Name" muss vollständig zugewiesen werden, bevor die Steuerung wieder an den Aufrufer übergeben wird. Sie könnten den Standardkonstruktor u. U. aus einem Konstruktorinitialisierer aufrufen.

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

So beheben Sie diesen Fehler

  1. Fügen Sie in einem Konstruktorinitialisierer wie im folgenden Beispiel einen Aufruf des Standardkonstruktors hinzu. Beachten Sie den Einsatz von : this(). Weitere Informationen finden Sie hier.

Beispiel

Durch den folgenden Code wird der Fehler CS0843 ausgelöst:

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