Przeczytaj w języku angielskim

Udostępnij za pośrednictwem


Błąd kompilatora CS1918

Nie można przypisać elementów członkowskich właściwości typu "type" z inicjatorem obiektu, ponieważ jest to typ wartości.

Ten błąd występuje, gdy próbujesz użyć inicjatora obiektu, aby zainicjować właściwości typu struktury, który jest samą właściwością klasy, która jest inicjowana.

Aby poprawić ten błąd

  1. Jeśli musisz w pełni zainicjować pola właściwości w inicjatorze obiektu, zmień strukturę na typ klasy. W przeciwnym razie zainicjuj elementy członkowskie struktury w osobnym wywołaniu metody po utworzeniu obiektu za pomocą inicjatora obiektów.

Przykład

Poniższy przykład generuje CS1918:

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

Zobacz też