Compilerfehler CS0188
Aktualisiert: November 2007
Fehlermeldung
Das this-Objekt kann erst verwendet werden, wenn alle Felder zugeordnet wurden.
The 'this' object cannot be used before all of its fields are assigned to
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 Foo()
{
}
S(int i)
{
// a = i;
Foo(); // CS0188
}
}
public static void Main()
{ }
}
}
Siehe auch
Referenz
Strukturen (C#-Programmierhandbuch)
Automatisch implementierte Eigenschaften (C#-Programmierhandbuch)