Partager via


Erreur du compilateur CS0462

Mise à jour : novembre 2007

Message d'erreur

Les membres hérités 'membre1' et 'membre2' ont la même signature dans le type 'type' et ne peuvent donc pas être substitués
The inherited members 'member1' and 'member2' have the same signature in type 'type', so they cannot be overridden

Cette erreur se produit avec l'introduction de génériques. Normalement, vous ne pouvez pas avoir deux versions d'une méthode dans une classe portant la même signature. Mais avec les génériques, vous pouvez spécifier une méthode générique qui peut dupliquer une autre méthode si elle est instanciée avec un type particulier.

Exemple

Lorsque C<int> est instancié, deux versions de la méthode F sont créées avec la même signature ;  par conséquent, la substitution effectuée dans la classe D ne peut pas décider à quelle version la substitution doit s'appliquer.

L'exemple suivant génère l'erreur 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
}