Číst v angličtině

Sdílet prostřednictvím


Chyba kompilátoru CS1918

Členy vlastnosti 'name' typu 'type' nelze přiřadit inicializátor objektu, protože se jedná o typ hodnoty.

K této chybě dochází, když se pokusíte použít objekt inicializátor inicializovat vlastnosti typu struktury, který je sám vlastností třídy, která je inicializována.

Oprava této chyby

  1. Pokud je nutné plně inicializovat pole vlastnosti v inicializátoru objektů, změňte strukturu na typ třídy. V opačném případě inicializovat členy struktury v samostatné volání metody po vytvoření objektu pomocí inicializátoru objektu.

Příklad

Následující příklad vygeneruje 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;  
    }  
}  

Viz také