Share via


Errore del compilatore CS0546

Aggiornamento: novembre 2007

Messaggio di errore

'funzione di accesso': impossibile eseguire l'override perché 'proprietà' non dispone di una funzione di accesso set che si può ignorare.
'accessor' : cannot override because 'property' does not have an overridable set accessor

Il tentativo di eseguire l'override di un metodo della funzione di accesso a una proprietà non è riuscito perché non è possibile eseguire l'override della funzione di accesso. È possibile risolvere questo errore:

  • Aggiungendo una funzione di accesso set nella classe base.

  • Rimuovendo la funzione di accesso set dalla classe derivata.

  • Nascondendo la proprietà della classe base mediante l'aggiunta della parola chiave new in una proprietà di una classe derivata.

  • Impostando la proprietà della classe base come virtual.

Per ulteriori informazioni, vedere Utilizzo delle proprietà (Guida per programmatori C#).

Esempio

Il seguente codice di esempio genera l'errore CS0546:

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