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

クラスで 2 つ以上のジェネリック インターフェイスが実装され、その 1 つがもう 1つを継承しているために、インターフェイス メンバーの 2 つの実装が特定の型引数の値で衝突する可能性があります。

次のステートメントでは、このエラーが生成される可能性があります。

Public Interface iFace1(Of t)  
    Sub testSub()  
End Interface  
Public Interface iFace2(Of u)  
    Inherits iFace1(Of u)  
End Interface  
Public Class testClass(Of y, z)  
    Implements iFace1(Of y), iFace2(Of z)  
    Public Sub testSuby() Implements iFace1(Of y).testSub  
    End Sub  
    Public Sub testSubz() Implements iFace1(Of z).testSub  
    End Sub  
End Class  

iFace2 は独自の型パラメーター ( iFace1 ) を使用してuを継承しているため、同じ型引数が testClassiFace1.testSub に渡された場合、 y は同じシグネチャを持つ 2 つのバージョンの zを実装します。 この場合、アクセスするバージョンがあいまいになる可能性があります。

エラー ID: BC32125

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

  • iFace1 が 2 つの異なる型引数で実装されないように、インターフェイスの継承構造を変更します。

    または

  • 実装の競合を起こすインターフェイスの 1 つを Implements ステートメントから削除します。

関連項目