Error del compilador CS1917

Actualización: noviembre 2007

Mensaje de error

Los miembros del campo de solo lectura 'name' de tipo 'struct name' no se pueden asignar con un inicializador de objeto porque es de un tipo de valor.
Members of read-only field 'name' of type 'struct name' cannot be assigned with an object initializer because it is of a value type.

Los campos de solo lectura que son tipos de valor que sólo se pueden asignar en un constructor.

Para corregir este error

  • Cambie la estructura a un tipo de clase.

  • Inicialice la estructura con un constructor.

Ejemplo

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