Compartir a través de


Error del compilador CS0843

Actualización: noviembre 2007

Mensaje de error

El campo de respaldo para la propiedad 'name' implementada automáticamente se debe asignar completamente antes de devolver el control al llamador. Llame al constructor predeterminado desde un inicializador de constructor.
Backing field for automatically implemented property 'name' must be fully assigned before control is returned to the caller. Consider calling the default constructor from a constructor initializer.

Para asignar un valor a una propiedad implementada automáticamente a partir de un constructor, debe invocar primero el constructor predeterminado para crear el objeto.

Para corregir este error

  • Agregue una llamada al constructor predeterminado en un inicializador de constructor como se muestra en el ejemplo siguiente. Observe el uso de : this(). Para obtener más información, vea this (Referencia de C#).

Ejemplo

El código siguiente genera el error CS0843:

// cs0843.cs
struct S
{
    public int AIProp { get; set; }
    public S(int i){} //CS0843
    // Try the following lines instead.
   // public S(int i) : this()
   // {
   //     AIProp = i;
   // }
}

class Test
{
    static int Main()
    {
        return 1;
    }
}