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


Член <имяИнтерфейса>.< имяПроцедуры>, соответствующий данной сигнатуре, не может быть реализован, поскольку интерфейс <имяИнтерфейса> содержит несколько членов с таким же именем и сигнатурой: <списокСигнатур>

Обновлен: Ноябрь 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

Ссылки

Implements (Visual Basic)

Оператор Implements