インターフェイス '<interfacename1>' を実装できません。実装すると、型引数に実装された別のインターフェイス '<interfacename2>' の実装と競合する可能性があります。

更新 : 2007 年 11 月

複数のインターフェイスを指定する Implements ステートメントがクラス宣言に含まれていますが、少なくとも 1 つのインターフェイスがジェネリックであり、実装の 2 つで型引数の特定の値が競合する可能性があります。

このエラーは次のようなコードで発生します。

Public Interface iFace1
    Sub testSub(ByVal arg As String)
End Interface
Public Interface iFace2(Of t)
    Sub testSub(ByVal arg As t)
End Interface
Public Class testClass
    Implements iFace1, iFace2(Of String)
End Class

iFace2 が String を使って作成されるため、testClass はシグネチャの同じ 2 つのバージョンの testSub を実装する必要があります。これは、アクセスするバージョンをあいまいにします。

Error ID: BC32072

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

  • ジェネリック インターフェイスに渡す型引数を変更して、競合が起こらないようにします。

    または

  • Implements ステートメントからインターフェイスの 1 つを削除して、実装の競合が起こらないようにします。

参照

概念

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

Visual Basic におけるジェネリック型

参照

Class ステートメント (Visual Basic)

Interface ステートメント (Visual Basic)

Implements ステートメント