Член <имяИнтерфейса>.< имяПроцедуры>, соответствующий данной сигнатуре, не может быть реализован, поскольку интерфейс <имяИнтерфейса> содержит несколько членов с таким же именем и сигнатурой: <списокСигнатур>
Обновлен: Ноябрь 2007
Member '<interfacename>.<procedurename>' that matches this signature cannot be implemented because the interface '<interfacename>' contains multiple members with this same name and signature: <signaturelist>
Процедура или свойство пытается реализовать процедуру или свойство, определенное в реализуемом интерфейсе, но компилятор обнаруживает несколько версий процедуры или свойства интерфейса с тем же именем и сигнатурой.
Эта ошибка может возникнуть в случае сконструированного универсального типа, как показывают следующие схематические объявления:
Public Interface baseInterface(Of t)
Sub doSomething(ByVal inputValue As String)
Sub doSomething(ByVal inputValue As t)
End Class
Public Class implementingClass
Implements baseInterface(Of String)
Sub doSomething(ByVal inputValue As String) _
Implements baseInterface(Of String).doSomething
End Sub
End Class
Поскольку implementingClass реализует baseInterface, указывая String в качестве параметра типа t, обе версии doSomething в baseInterface для implementingClass будут иметь одинаковые сигнатуры. В результате компилятор не может определить версию, подлежащую реализации.
Идентификатор ошибки: BC30937
Для исправления этой ошибки выполните следующие действия:
Измените тип аргумента или аргументов, передаваемых в базовый класс, чтобы в результате не получалось несколько одинаковых сигнатур процедур или свойств членов.
–либо–
Не следует реализовывать этот базовый класс. С набором используемых типов аргументов реализовать его невозможно, поскольку необходимо реализовать все его члены.
См. также
Основные понятия
Зарезервированное слово Implements и оператор Implements