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


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

Обновлен: Ноябрь 2007

Сообщение об ошибке

Невозможно присвоить значение свойству или индексатору "имя" — он доступен только для чтения
Property or indexer 'name' cannot be assigned to -- it is read only

Полю с модификатором readonly значение может быть присвоено только при объявлении или в конструкторе. Дополнительные сведения см. в разделе Конструкторы (руководство по программированию на C#).

Ошибка CS0191 также возникает, если поле readonly является static, а конструктор не отмечен как static.

Пример

Этот пример приводит к возникновению ошибки CS0191:

// CS0191.cs
class MyClass
{
    public readonly int TestInt = 6;  // OK to assign to readonly field in declaration

    MyClass()
    {
        TestInt = 11; // OK to assign to readonly field in constructor
    }

    public void TestReadOnly()
    {
        TestInt = 19;                  // CS0191
    }

    public static void Main()
    {
    }
}