クラス '<classname>' は同じ名前とシグネチャが指定された複数のメンバを含むため、このシグネチャに一致するメンバ '<classname>.<procedurename>' をオーバーライドすることはできません: <signaturelist>

更新 : 2007 年 11 月

プロシージャまたはプロパティが、継承されたプロシージャまたはプロパティをオーバーライドしようとしましたが、コンパイラによって、同じ名前とシグネチャを持つ複数の形式の基本プロシージャまたは基本プロパティが検出されました。

次のスケルトン宣言に示すように、このエラーは、ジェネリック型が構築された状況で発生する可能性があります。

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 の 2 つのバージョンは同じシグネチャを受け取ることになります。その結果、コンパイラはどちらのバージョンをオーバーライドするべきかが判断できません。

Error ID: BC30935

このエラーを解決するには

  • 基本クラスに指定する型引数を変更して、メンバのプロシージャまたはプロパティの 1 つ以上のシグネチャが同じにならないようにします。

    または

  • 使用中の型引数のセットを持つ基本クラスを継承する必要がある場合は、このエラー メッセージに表示されているプロシージャまたはプロパティをオーバーライドしないでください。

参照

概念

プロパティとメソッドのオーバーライド

参照

Overridable

Overrides