Freigeben über


Compilerfehler CS0546

Aktualisiert: November 2007

Fehlermeldung

"Accessor": kann nicht überschrieben werden, weil "Eigenschaft" keinen überschreibbaren "set"-Accessor hat
'accessor' : cannot override because 'property' does not have an overridable set accessor

Fehler beim Versuch, eine der Accessormethoden für eine Eigenschaft zu überschreiben, weil der Accessor nicht überschrieben werden kann. Der Fehler kann folgendermaßen behoben werden:

  • Fügen Sie in der Basisklasse einen set-Accessor hinzu.

  • Entfernen Sie den set-Accessor aus der abgeleiteten Klasse.

  • Blenden Sie die Basisklasseneigenschaft aus, indem Sie in der Eigenschaft einer abgeleiteten Klasse das new-Schlüsselwort hinzufügen.

  • Markieren Sie die Basisklasseneigenschaft als virtuell.

Weitere Informationen finden Sie unter Verwenden von Eigenschaften (C#-Programmierhandbuch).

Beispiel

Im folgenden Beispiel wird CS0546 generiert:

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