Export (0) Print
Expand All
Expand Minimize

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
}

Community Additions

ADD
Show:
© 2015 Microsoft