다음을 통해 공유


'<classname>' 클래스에 이름과 시그니처가 같은 여러 멤버가 포함되어 있으므로 이 시그니처와 일치하는 '<classname>.<procedurename>' 멤버를 재정의할 수 없습니다. <signaturelist>

업데이트: 2007년 11월

Member '<classname>.<procedurename>' that matches this signature cannot be overridden because the class '<classname>' contains multiple members with this same name and signature: <signaturelist>

프로시저나 속성이 상속된 프로시저나 속성을 재정의하려고 하지만 컴파일러에서 동일한 이름과 시그니처를 가진 기본 프로시저 버전 또는 속성 버전을 두 개 이상 찾았습니다.

이 오류는 다음에 있는 간략한 선언에 설명된 것처럼 생성된 제네릭 형식이 있는 경우에 발생할 수 있습니다.

Public Class baseClass(Of t)
    Public Overridable Sub doSomething(ByVal inputValue As String)
    End Sub
    Public Overridable Sub doSomething(ByVal inputValue As t)
    End Sub
End Class
Public Class derivedClass
    Inherits baseClass(Of String)
    Overrides Sub doSomething(ByVal inputValue As String)
    End Sub
End Class

derivedClass는 t 형식 매개 변수에 String을 제공하는 baseClass를 상속하기 때문에 derivedClass에 있어서 baseClass의 두 doSomething 버전은 동일한 시그니처를 사용합니다. 따라서, 컴파일러는 재정의할 버전을 결정할 수 없습니다.

오류 ID: BC30935

이 오류를 해결하려면

  • 기본 클래스에 제공하는 형식 인수를 변경하여 멤버 프로시저나 속성에 대해 동일한 시그니처가 생성되지 않게 합니다.

    - 또는 -

  • 사용하고 있는 형식 인수 집합을 가진 기본 클래스를 상속해야 하는 경우 이 오류 메시지에 표시된 프로시저나 속성을 재정의하지 마십시오.

참고 항목

개념

속성 및 메서드 재정의

참조

Overridable

Overrides