Error del compilador CS0545

Actualización: noviembre 2007

Mensaje de error

'función': no se puede reemplazar porque 'propiedad' no tiene un descriptor de acceso get reemplazable
'function' : cannot override because 'property' does not have an overridable get accessor

Se intentó definir la invalidación de un descriptor de acceso de propiedad sin que la clase base tenga dicha definición para invalidarla. Se puede resolver el error de la siguiente forma:

  • Agregando un descriptor de acceso set en la clase base.

  • Quitando el descriptor de acceso set de la clase derivada.

  • Ocultando la propiedad de clase base, agregando la palabra clave new a una propiedad de una clase derivada.

  • Convirtiendo en virtual la propiedad de clase base.

Para obtener más información, vea Utilizar propiedades (Guía de programación de C#).

Ejemplo

El código siguiente genera el error CS0545.

// CS0545.cs
// compile with: /target:library
// CS0545
public class a
{
   public virtual int i
   {
      set {}

      // Uncomment the following line to resolve.
      // get { return 0; }
   }
}

public class b : a
{
   public override int i
   {
      get { return 0; }
      set {}   // OK
   }
}