Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dem erforderlichen Element "memberName" muss ein Wert zugewiesen werden, es kann kein geschachteltes Element oder ein Sammlungsinitialisierer verwendet werden.
Beim Initialisieren eines Objekts mit einem required
Element müssen Sie dem Element direkt einen Wert zuweisen. Sie können ein geschachteltes Element oder einen Sammlungsinitialisierer nicht verwenden, um Eigenschaften des required
Elements festzulegen, ohne es zuerst instanziieren zu müssen.
Beispiel
Im folgenden Beispiel wird CS9036 generiert:
class C
{
public string? Prop { get; set; }
}
class Program
{
public required C C { get; set; }
static void Main()
{
var program = new Program()
{
// error CS9036: Required member 'Program.C' must be assigned a value, it cannot use a nested member or collection initializer.
C = { Prop = "a" }
};
}
}
Lösung
Um diesen Fehler zu beheben, weisen Sie direkt eine neue Instanz der erforderlichen Eigenschaft zu und initialisieren ihre Mitglieder:
class C
{
public string? Prop { get; set; }
}
class Program
{
public required C C { get; set; }
static void Main()
{
var program = new Program()
{
// Correct: Assign a new instance of C and then initialize its Prop property
C = new C { Prop = "a" }
};
}
}
Weitere Informationen zu erforderlichen Elementen finden Sie im Artikel zur Referenz des erforderlichen Modifizierers und im Leitfaden zu Objekt- und Sammlungsinitialisierern.