Error del compilador CS0191

Actualización: noviembre 2007

Mensaje de error

No se puede asignar la propiedad o el indizador 'nombre' (es de sólo lectura)
Property or indexer 'name' cannot be assigned to -- it is read only

Un campo de sólo lectura (readonly) sólo puede tomar una asignación en un constructor o en el momento de su declaración. Para obtener más información, vea Constructores (Guía de programación de C#).

También se puede obtener el error CS0191 si el campo readonly es static y el constructor no está marcado como static.

Ejemplo

El código siguiente genera el error 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()
    {
    }
}