Przeczytaj w języku angielskim

Udostępnij za pośrednictwem


Błąd kompilatora CS0462

Dziedziczone elementy członkowskie "member1" i "member2" mają ten sam podpis w typie "type", więc nie można ich zastąpić

Ten błąd pojawia się wraz z wprowadzeniem typów ogólnych. Zwykle nie można mieć dwóch wersji metody w klasie z tym samym podpisem. Jednak w przypadku typów ogólnych można określić metodę ogólną, która może zduplikować inną metodę, jeśli zostanie utworzona wystąpienie z określonym typem.

Przykład

Po C<int> utworzeniu wystąpienia są tworzone dwie wersje metody F z tym samym podpisem, więc przesłonięcia w klasie D nie mogą zdecydować, do którego z nich należy zastosować przesłonięcia.

Poniższy przykład generuje plik 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  
}