Error del compilador CS0462

Actualización: noviembre 2007

Mensaje de error

Los miembros heredados 'miembro1' y 'miembro2' tienen la misma firma en el tipo 'tipo'; por tanto, no se pueden reemplazar
The inherited members 'member1' and 'member2' have the same signature in type 'type', so they cannot be overridden

Este error se produce con la introducción de genéricos. Normalmente, no puede haber dos versiones de un método en una clase con la misma firma. Sin embargo, cuando se usan genéricos se puede especificar un método genérico que podría duplicar a otro si se crea una instancia con un tipo concreto.

Ejemplo

Cuando se crea una instancia de C<int>, se crean dos versiones del método F con la misma firma. Por tanto, al efectuarse el reemplazo de la clase D, no se puede determinar a cuál de ellos se aplica el reemplazo.

El código siguiente genera el error 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
}