Поделиться через


Невозможно наследовать интерфейс <имяИнтерфейса1>, так как он может совпадать с интерфейсом <имяИнтерфейса2>, от которого наследуется интерфейс <имяИнтерфейса3> для некоторых аргументов типа

Обновлен: Ноябрь 2007

Cannot inherit interface '<interfacename1>' because it could be identical to interface '<interfacename2>' from which the interface '<interfacename3>' inherits for some type arguments

Универсальный интерфейс наследуется из двух или более универсальных интерфейсов, и эти два наследования могут конфликтовать для определенных значений аргументов типа.

Эту ошибку могут вызвать следующие операторы.

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

Если derivedInterface формируется или предоставляется одним и тем же типом для t1 и t2, он должен наследовать две версии interfaceA с одинаковыми аргументами типа. Это вызовет неоднозначность в том, к какой версии получать доступ.

Идентификатор ошибки: BC32123

Чтобы исправить эту ошибку

  • Измените один из аргументов типа, предоставленных для производного интерфейса так, чтобы избежать конфликта.

    либо

  • Удалите из оператора Inherits один из интерфейсов, вызывающих возможный конфликт наследования или реализации.

См. также

Основные понятия

Общие сведения об интерфейсах

Основы наследования

Универсальные типы в Visual Basic

Ссылки

Оператор Interface (Visual Basic)

Инструкция Inherits