Udostępnij za pośrednictwem


Składowa "<classname>".<procedurename>", który pasuje do tego podpisu, nie może zostać zastąpiony, ponieważ klasa "<classname>" zawiera wiele elementów członkowskich o tej samej nazwie i podpisie: <signaturelist>

Procedura lub właściwość próbuje zastąpić odziedziczoną procedurę lub właściwość, ale kompilator znajduje więcej niż jedną wersję procedury podstawowej lub właściwości o tej samej nazwie i podpisie.

Ten błąd może wystąpić w sytuacji ze skonstruowanymi typami ogólnymi, jak pokazano w poniższych deklaracjach szkieletu.

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  

Ponieważ derivedClass dziedziczy baseClass dostarczanie String do parametru ttypu , dwie wersje doSomething programu baseClass przyjmują identyczne podpisy, jeśli derivedClass chodzi o to. W związku z tym kompilator nie może określić, która wersja ma być przesłonięć.

Identyfikator błędu: BC30935

Aby poprawić ten błąd

  • Zmień argument typu lub argumenty, które podajesz do klasy bazowej, tak aby nie powodowała co najmniej jednego identycznego podpisu procedur składowych ani właściwości.

    — lub —

  • Jeśli chcesz dziedziczyć klasę bazową z zestawem używanych argumentów typu, nie przesłaniaj procedury ani właściwości cytowanej w tym komunikacie o błędzie.

Zobacz też