컴파일러 오류 CS0462

업데이트: 2007년 11월

오류 메시지

상속된 멤버 'member1'과(와) 'member2'은(는) 형식이 'type'인 같은 시그니처를 가지므로 재정의할 수 없습니다.
The inherited members 'member1' and 'member2' have the same signature in type 'type', so they cannot be overridden

이 오류는 제네릭을 사용함으로 인하여 발생합니다. 일반적으로 클래스에는 동일한 시그니처를 가진 두 가지 버전의 메서드가 있을 수 없습니다. 그러나 제네릭을 사용하면 특정 형식으로 인스턴스화되는 경우 다른 메서드를 복제하는 제네릭 메서드를 지정할 수 있습니다.

예제

C<int>를 인스턴스화하면 동일한 시그니처를 가진 두 버전의 메서드 F가 생성되므로 클래스 D에 있는 재정의에서 재정의 대상 메서드를 결정할 수 없는 문제가 생깁니다.

다음 샘플에서는 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
}