Прочитать на английском

Поделиться через


Ошибка компилятора CS1918

Членам свойства "имя" типа "тип" не могут быть присвоены значения с помощью инициализатора объекта, поскольку они имеют тип значения

Эта ошибка возникает при попытке использовать инициализатор объекта для инициализации свойств структуры, которая сама является свойством инициализируемого класса.

Исправление ошибки

  1. Если в инициализаторе объекта необходимо полностью инициализировать поля свойства, измените структуру на класс. В противном случае после создания объекта с помощью инициализатора объекта инициализируйте члены структуры в вызове отдельного метода.

Пример

В следующем примере возникает ошибка 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;  
    }  
}  

См. также