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.
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
}
Opinia o produkcie .NET
.NET to projekt typu open source. Wybierz link, aby przekazać opinię: