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.
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.
// 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
}
Feedback su .NET
.NET è un progetto di open source. Selezionare un collegamento per fornire feedback: