Číst v angličtině

Sdílet prostřednictvím


Chyba kompilátoru CS0462

Zděděné členy "member1" a "member2" mají stejný podpis typu "type", takže je nelze přepsat.

K této chybě dochází při zavádění obecných typů. Za normálních okolností nelze ve třídě se stejným podpisem mít dvě verze metody. U obecných typů ale můžete zadat obecnou metodu, která může duplikovat jinou metodu, pokud se vytvoří instance s konkrétním typem.

Příklad

Při C<int> vytvoření instance se vytvoří dvě verze metody F se stejným podpisem, takže přepsání ve třídě D nemůže rozhodnout, na který z nich se má přepsání použít.

Následující ukázka vygeneruje 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  
}