Leggere in inglese

Condividi tramite


Errore del compilatore CS0462

I membri ereditati 'member1' e 'member2' hanno la stessa firma nel tipo 'type', quindi non possono essere sottoposti a override

Questo errore risulta dall'introduzione di generics. In genere, in una classe non possono esistere due versioni di un metodo con la stessa firma. Con l'introduzione di generics, invece, è possibile specificare un metodo generico che può duplicare un altro metodo se ne viene creata un'istanza con un tipo specifico.

Esempio

Quando viene creata un'istanza di C<int> , vengono generate due versioni del metodo F con la stessa firma. Di conseguenza, l'override nella classe D non riesce a determinare la versione su cui operare.

L'esempio seguente genera l'errore CS0462.

C#
// CS0462.cs  
// compile with: /target:library  
class C<T>
{  
   public virtual void F(T t) {}  
   public virtual void F(int t) {}  
}  
  
class D : C<int>
{  
   public override void F(int t) {}   // CS0462  
}