Compiler Error CS0462
The inherited members 'member1' and 'member2' have the same signature in type 'type', so they cannot be overridden
This error arises with the introduction of generics. Normally, you cannot have two versions of a method in a class with the same signature. But with generics, you can specify a generic method that might duplicate another method if it is instantiated with a particular type.
When C<int>
is instantiated, two versions of the method F
are created with the same signature, so the override in class D
cannot decide which one to apply the override to.
The following sample generates 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
}
.NET feedback
.NET is an open source project. Select a link to provide feedback: