Číst v angličtině

Sdílet prostřednictvím


Chyba kompilátoru CS0546

'accessor' : nemůže přepsat, protože vlastnost nemá přepisovatelného objektu set accessor

Pokus o přepsání jedné z metod přístupového objektu pro vlastnost se nezdařil, protože přístup nelze přepsat. K této chybě může dojít v následujících případech:

  • vlastnost základní třídy není deklarována jako virtuální.

  • vlastnost základní třídy deklaruje get nebo set accessor, který se pokoušíte přepsat.

Pokud nechcete přepsat vlastnost základní třídy, můžete použít nové klíčové slovo před vlastností v odvozené třídě.

Další informace naleznete v tématu Použití vlastností.

Příklad

Následující ukázka vygeneruje CS0546, protože základní třída deklaruje objekt set accessor pro vlastnost.

// 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  
   }  
}  

Viz také