Ler em inglês

Compartilhar via


Erro do Compilador CS0462

Os membros herdados 'member1' e 'member2' têm a mesma assinatura no tipo 'type', portanto, eles não podem ser substituídos

Esse erro surge com a introdução de genéricos. Normalmente, você não pode ter duas versões de um método em uma classe com a mesma assinatura. Porém, com genéricos, você pode especificar um método genérico que pode duplicar outro método se ele for instanciado com um tipo específico.

Exemplo

Quando C<int> for instanciada, duas versões do método F são criadas com a mesma assinatura, portanto, a substituição na classe D não pode decidir a qual aplicar a substituição.

O exemplo a seguir gera 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  
}