Leggere in inglese

Condividi tramite


Errore del compilatore CS0546

'accessor': non è possibile eseguire l'override perché 'property' non ha di una funzione di accesso set di cui eseguire l'override

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. Questo errore si verifica nei casi seguenti:

  • la proprietà della classe base non è dichiarata come virtuale.

  • la proprietà della classe base non dichiara la funzione di accesso get o set di cui si sta provando a eseguire l'override.

Se non si vuole eseguire l'override della proprietà della classe base, è possibile usare la parola chiave new prima della proprietà nella classe derivata.

Per altre informazioni, vedere Using Properties.

Esempio

L'esempio seguente genera l'errore CS0546 perché la classe base non dichiara una funzione di accesso set per la proprietà.

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

Vedi anche