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


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

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

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

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

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

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

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

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

Исправление данной ошибки

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

    либо

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

См. также

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

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

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

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

Ссылки

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

Инструкция Inherits