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

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


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

Модификация членов доступного только для чтения поля "идентификатор" возможна только в конструкторе или в инициализаторе переменной

Эта ошибка возникает при попытке изменить член поля, доступного только для чтения, где нельзя вносить изменения. Чтобы устранить эту ошибку, при назначении полям, доступным только для чтения, ограничьтесь конструктором или инициализатором переменных или удалите ключевое слово readonly из объявления поля.

Пример

Следующий пример приводит к возникновению ошибки CS1648:

// CS1648.cs
public struct Inner
{
    public int i;
}

class Outer
{
    public readonly Inner inner = new Inner();
}

class D
{
    static void Main()
    {
        var outer = new Outer();
        outer.inner.i = 1;  // CS1648
    }
}