Ошибка компилятора CS1917
Обновлен: Ноябрь 2007
Сообщение об ошибке
Членам предназначенного только для чтения поля 'name' типа 'struct name' значения не могут быть присвоены с помощью инициализатора объекта, потому что оно имеет тип значения.
Members of read-only field 'name' of type 'struct name' cannot be assigned with an object initializer because it is of a value type.
Значения предназначенным только для чтения полям типов значений могут присваиваться только в конструкторе.
Исправление ошибки
Измените тип struct на class.
Инициализируйте структуру с помощью конструктора.
Пример
Следующий код вызывает ошибку CS1917:
// cs1917.cs
class CS1917
{
public struct TestStruct
{
public int i;
}
public class C
{
public readonly TestStruct str = new TestStruct();
public static int Main()
{
C c = new C { str = { i = 1 } }; // CS1917
return 0;
}
}
}