.", так как его реализация может конфликтуть с реализацией для некоторых аргументов типа. - Visual Basic | Microsoft Learn"
data-list-item-url="/dotnet/visual-basic/misc/bc32125"
data-list-source="module"
data-resource-type=""
data-bi-name="add-to-list"
aria-describedby="popover-content"
aria-expanded="false"
>
Сохранить
Не удается реализовать "<interfacename1>".<имя> участника, так как его реализация может конфликтуть с реализацией для< interfacename2>.<имя> участника для некоторых аргументов типа
Класс реализует более одного универсального интерфейса, один из которых наследуется от другого, и две реализации члена интерфейса могут конфликтовать из-за определенных значений аргументов типа.
Следующие операторы могут привести к этой ошибке.
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
Так как iFace2
наследуется от iFace1
с помощью собственного параметра типа (u
), testClass
будет реализовывать две версии iFace1.testSub
с одинаковыми сигнатурами, если одинаковые аргументы типа будет переданы y
и z
. Это вызовет неоднозначность в том, к какой версии получать доступ.
Идентификатор ошибки: BC32125
Измените структуру наследования интерфейсов так, чтобы
iFace1
нельзя было реализовать с двумя разными аргументами типа.–или–
Удалите из инструкции
Implements
один из интерфейсов, приводящих к появлению конфликта.