Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Vereist lid 'memberName' moet een waarde krijgen toegewezen, het kan geen gebruik maken van een genest lid of een initialisatiefunctie voor verzamelingen.
Wanneer u een object initialiseert met een required
lid, moet u het lid rechtstreeks een waarde toewijzen. U kunt geen geneste lid- of verzamelingsinitiator gebruiken om eigenschappen van het required
lid in te stellen zonder deze eerst te instantiƫren.
Voorbeeld
In het volgende voorbeeld wordt CS9036 gegenereerd:
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" }
};
}
}
Oplossing
U kunt deze fout oplossen door rechtstreeks een nieuw exemplaar van de vereiste eigenschap toe te wijzen en de leden ervan te initialiseren:
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" }
};
}
}
Zie het referentieartikel over vereiste modifiers en de handleiding voor object- en collectie-initializers voor meer informatie over vereiste leden.