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