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


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

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

Cannot implement interface '<interfacename1>' because its implementation could conflict with the implementation of another implemented interface '<interfacename2>' for some type arguments

Объявление класса включает оператор Implements, который задает два или несколько интерфейсов, но хотя бы один из интерфейсов является универсальным, а две реализации могут вступать в конфликт с определенными значениями аргументов типа.

Данная ошибка может быть вызвана следующими операторами.

Public Interface iFace1
    Sub testSub(ByVal arg As String)
End Interface
Public Interface iFace2(Of t)
    Sub testSub(ByVal arg As t)
End Interface
Public Class testClass
    Implements iFace1, iFace2(Of String)
End Class

Поскольку iFace2 формируется с использованием String, testClass должен реализовывать две версии testSub с одинаковыми подписями. Это вызовет неоднозначность в том, к какой версии следует обращаться.

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

Чтобы исправить данную ошибку

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

    или

  • Удалите из оператора Implements один из интерфейсов, который приводит к конфликту при реализации.

См. также

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

Зарезервированное слово Implements и оператор Implements

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

Ссылки

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

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

Оператор Implements