Partilhar via


Não é possível herdar a interface '<interfacename1>' porque a interface '<nomedainterface2>' de onde ela herda pode ser idêntica à interface '<nomedainterface3>' de onde a interface '<interfacename4>' herda para alguns tipos de argumentos.

Uma interface genérica herda de duas ou mais interfaces genéricas, e duas das heranças poderiam conflitar por certo valores de argumentos de tipo.

A seguinte declaração pode gerar esse erro.

Public Interface interfaceA(Of u)
End Interface
Public Interface interfaceX(Of v)
    Inherits interfaceA(Of v)
End Interface
Public Interface interfaceY(Of w)
    Inherits interfaceA(Of w)
End Interface
Public Interface derivedInterface(Of t1, t2)
    Inherits interfaceX(Of t1), interfaceY(Of t2)
End Interface

Se derivedInterface é construída ou implementada fornecendo o mesmo tipo para tanto t1 quanto t2, ela deve herdar duas versões de interfaceA com argumentos de tipo idênticos.Fazer isso produziria uma ambiguidade sobre qual versão acessar.

ID de erro: BC32122

Para corrigir este erro

  • Mude um dos argumentos de tipo fornecidos a interface derivada de forma que não exista mais conflito.

    - ou -

  • Remova da declaração Inherits uma das interfaces causando o potencial conflito de herança ou implementação.

Consulte também

Conceitos

Visão geral de interfaces

Noções básicas de herança

Tipos genéricos no Visual Basic

Referência

Declaração Interface (Visual Basic)

Declaração Inherits