Error del compilador CS1648

Actualización: noviembre 2007

Mensaje de error

Los miembros del campo de sólo lectura 'identificador' no se pueden modificar (excepto en un constructor o en un inicializador de variables)
Members of readonly field 'identifier' cannot be modified (except in a constructor or a variable initializer)

Este error se produce cuando se intenta modificar un miembro de un campo de sólo lectura que no permite modificaciones. Para resolverlo, limite las asignaciones a campos de sólo lectura al constructor o el inicializador de variables, o bien quite la palabra clave readonly de la declaración del campo.

El código siguiente genera el error CS1648:

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

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

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