Compilerfehler CS0188

Das this-Objekt kann erst verwendet werden, wenn alle Felder zugeordnet wurden.

Bevor der Konstruktor eine Methode in struct aufrufen kann, müssen alle struct-Felder von einem Konstruktor zugewiesen werden.

Wenn beim Versuch, eine Eigenschaft in einem Strukturkonstruktor zu initialisieren, dieser Fehler angezeigt wird, besteht die Lösung darin, den Konstruktorparameter so zu ändern, dass das dahinter liegende Feld anstelle der Eigenschaft selbst angegeben wird. Automatisch implementierte Eigenschaften sollten in Strukturen vermieden werden, weil für sie kein dahinter liegendes Feld vorhanden ist und es nicht vom Konstruktor aus initialisiert werden kann.

Weitere Informationen finden Sie unter Verwenden von Strukturen (C#-Programmierhandbuch).

Beispiel

Im folgenden Beispiel wird CS0188 generiert:

// CS0188.cs
// compile with: /t:library
namespace MyNamespace
{
    class MyClass
    {
        struct S
        {
            public int a;

            void MyMethod()
            {
            }

            S(int i)
            {
                // a = i;
                MyMethod();  // CS0188
            }
        }
        public static void Main()
        { }

    }
}

Siehe auch

Referenz

Strukturen (C#-Programmierhandbuch)

Automatisch implementierte Eigenschaften (C#-Programmierhandbuch)