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

更新 : 2007 年 11 月

プロシージャまたはプロパティが、実装されたインターフェイスの中で定義されているプロシージャまたはプロパティを実装しようとしましたが、同じ名前とシグネチャを持つインターフェイス プロシージャまたはプロパティが複数見つかりました。

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

Public Interface baseInterface(Of t)
    Sub doSomething(ByVal inputValue As String)
    Sub doSomething(ByVal inputValue As t)
End Class
Public Class implementingClass
    Implements baseInterface(Of String)
    Sub doSomething(ByVal inputValue As String) _
        Implements baseInterface(Of String).doSomething
    End Sub
End Class

implementingClass は、baseInterface を実装するときに型パラメータ t に String を渡しているので、implementingClass に関する限りは、baseInterface 内の 2 つのバージョンの doSomething がまったく同じシグネチャを持つことになります。そのため、コンパイラはどちらのバージョンを実装するべきか判断できません。

Error ID: BC30937

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

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

    または

  • この基本クラスを実装しないようにします。個々のメンバを実装する必要があるため、現在使用している一連の型引数でこれを実装することはできません。

参照

概念

Implements キーワードおよび Implements ステートメント

参照

Implements (Visual Basic)

Implements ステートメント