Прочитать на английском

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


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

Процедура или свойство пытается переопределить унаследованную процедуру или свойство, но компилятор обнаруживает несколько версий базовой процедуры или свойства с тем же именем и сигнатурой.

Эта ошибка может возникнуть в случае сконструированного универсального типа, как показывают приведенные ниже схематические объявления.

Public Class baseClass(Of t)  
    Public Overridable Sub doSomething(ByVal inputValue As String)  
    End Sub  
    Public Overridable Sub doSomething(ByVal inputValue As t)  
    End Sub  
End Class  
Public Class derivedClass  
    Inherits baseClass(Of String)  
    Overrides Sub doSomething(ByVal inputValue As String)  
    End Sub  
End Class  

Так как derivedClass наследует baseClass , предоставляя String параметру типа t, обе версии doSomething в baseClass для derivedClass будут иметь одинаковые сигнатуры. В результате компилятор не может определить версию, подлежащую переопределению.

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

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

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

    –или–

  • Если нужно унаследовать базовый класс с используемым набором аргументов типа, не переопределяйте процедуру или свойство, указанные в этом сообщении об ошибке.

См. также