Compilerfehler CS0188Compiler Error CS0188

Das Objekt „this“ kann nicht verwendet werden, bevor nicht alle seine Felder zugewiesen wurden.The 'this' object cannot be used before all of its fields are assigned to

Alle Felder in einer struct müssen einem Konstruktor zugewiesen werden, bevor der Konstruktor eine Methode in der struct aufrufen kann.All fields in a struct have to be assigned by a constructor before the constructor can call a method in the struct.

Wenn Sie einen Fehler beim Initialisieren einer Eigenschaft in einem struct-Konstruktor erhalten, ändern Sie den Konstruktorparameter, um das Unterstützungsfeld statt der Eigenschaft selbst anzugeben.If you see this error when trying to initialize a property in a struct constructor, the solution is to change the constructor parameter to specify the backing field instead of the property itself. Automatisch implementierte Eigenschaften sollten in Strukturen vermieden werden, da sie kein Unterstützungsfeld aufweisen und deshalb nicht über den Konstruktor initialisiert werden können.Auto-implemented properties should be avoided in structs because they have no backing field and therefore cannot be initialized in any way from the constructor.

Weitere Informationen finden Sie unter Verwenden von Strukturen.For more information, see Using Structs.

BeispielExample

Im folgenden Beispiel wird CS0188 generiert:The following sample generates CS0188:

// 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 auchSee Also

StrukturenStructs
Automatisch implementierte EigenschaftenAuto-Implemented Properties