Não é possível implementar '<nomeinterface1>.<nomemembro>' porque sua implementação poderia entrar em conflito com a implementação para '<nomeinterface2>.<nomemembro>' para alguns argumentos de tipo.
Uma classe implementa mais de uma interface genérica, uma que herda de outra, e duas implementações de um membro de interface poderia entrar em conflito para certos valores de argumentos de tipo.
A seguinte declaração pode 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
Devido ao fato de que iFace2 herda de iFace1 usando seu próprio parâmetro de tipo (u), testClass implementaria duas versões de iFace1.testSub com assinaturas idênticas se o mesmo argumento de tipo foi passado para y e z.Isto produziria uma ambiguidade sobre quais versões acessar.
ID de erro: BC32125
Para corrigir este erro
Altere a estrutura de herança das interfaces de modo que iFace1 não possa ser implementado com dois argumentos de tipo diferentes.
- ou -
Remova da declaração Implements uma das interfaces que resulta no conflito de implementação.
Consulte também
Conceitos
Palavra-chave Implements e a demonstrativo Implements
Tipos genéricos no Visual Basic
Referência
Declaração Class (Visual Basic)