Compilerfout CS1918
Leden van de eigenschap 'naam' van het type 'type' kunnen niet worden toegewezen met een object-initialisatiefunctie omdat het van een waardetype is.
Deze fout treedt op wanneer u een object-initialisatiefunctie probeert te gebruiken om de eigenschappen van een structtype te initialiseren dat zelf een eigenschap is van de klasse die wordt geïnitialiseerd.
- Als u de velden van de eigenschap in de object-initialisatiefunctie volledig moet initialiseren, wijzigt u de struct in een klassetype. Anders initialiseert u de struct-leden in een afzonderlijke methodeaanroep nadat u het object hebt gemaakt met behulp van de object-initialisatiefunctie.
In het volgende voorbeeld wordt CS1918 gegenereerd:
// cs1918.cs
public struct MyStruct
{
public int i;
}
public class Test
{
private MyStruct str = new MyStruct();
public MyStruct Str
{
get
{
return str;
}
}
public static int Main()
{
Test t = new Test { Str = { i = 1 } }; // CS1918
return 0;
}
}
.NET-feedback
.NET is een open source project. Selecteer een koppeling om feedback te geven: