Leer en inglés

Compartir a través de


Error del compilador CS0546

'accessor': no se puede reemplazar porque 'property' no tiene un descriptor de acceso set reemplazable

Error al intentar reemplazar uno de los métodos de descriptor de acceso para una propiedad porque no se puede reemplazar el descriptor de acceso. Este error se puede generar si:

  • Si la propiedad de clase base no está declarada como virtual.

  • Si la propiedad de clase base no declara el descriptor de acceso get o set que está intentando reemplazar.

Si no desea reemplazar la propiedad de clase base, puede usar la palabra clave new antes de la propiedad en una clase derivada.

Para obtener más información, consulta Using Properties.

Ejemplo

El ejemplo siguiente genera la advertencia CS0546 porque la clase base no declara ningún descriptor de acceso set para la propiedad.

C#
// CS0546.cs  
// compile with: /target:library  
public class a  
{  
   public virtual int i  
   {  
      get  
      {  
         return 0;  
      }  
   }  
  
   public virtual int i2  
   {  
      get  
      {  
         return 0;  
      }  
  
      set {}  
   }  
}  
  
public class b : a  
{  
   public override int i  
   {  
      set {}   // CS0546 error no set  
   }  
  
   public override int i2  
   {  
      set {}   // OK  
   }  
}  

Consulte también