Não é possível implementar '<interfacename1>.<membername>' porque sua implementação pode entrar em conflito com a implementação de '<interfacename2>.<membername>' para alguns argumentos de tipo

Uma classe implementa mais de uma interface genérica, uma das quais herda de outra, e duas implementações de um membro da interface podem entrar em conflito para certos valores de argumentos de tipo.

As instruções a seguir podem gerar esse erro.

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  

Como iFace2 herda do uso de seu próprio parâmetro de iFace1 tipo (u), testClass implementaria duas versões de com assinaturas idênticas se o mesmo argumento de iFace1.testSub tipo fosse passado para y e z. Isso produziria uma ambiguidade sobre qual versão acessar.

ID de erro: BC32125

Para corrigir este erro

  • Altere a estrutura de herança das interfaces para que iFace1 não possa ser implementado com dois argumentos de tipo diferentes.

    -or-

  • Remova da Implements instrução uma das interfaces que resultam no conflito de implementação.

Consulte também