Freigeben über


Compiler Error CS0546

"Accessor": Überschreiben nicht möglich, weil "Eigenschaft" keinen überschreibbaren set-Accessor hat.

Beim Versuch, eine der Accessormethoden für eine Eigenschaft zu überschreiben, ist ein Fehler aufgetreten, da der Accessor nicht überschrieben werden kann. Dieser Fehler kann in den folgenden Fällen auftreten:

  • Die Basisklasse ist nicht als virtuelldeklariert.

  • Die Basisklasseneigenschaft deklariert den get - oder set -Accessor nicht, den Sie überschreiben möchten.

Wenn Sie die Basisklasseneigenschaft nicht überschreiben möchten, können Sie vor der Eigenschaft in einer abgeleiteten Klasse das new -Schlüsselwort verwenden.

Weitere Informationen finden Sie unter Using Properties.

Beispiel

Im folgende Beispiel wird CS0546 generiert, da die Basisklasse keinen set-Accessor für die Eigenschaft deklariert.

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

Siehe auch