Lezen in het Engels

Delen via


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.

Deze fout corrigeren

  1. 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.

Opmerking

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;  
    }  
}  

Zie ook