Element członkowski "<interfacename>".<procedurename>", który pasuje do tego podpisu, nie można zaimplementować, ponieważ interfejs "<interfacename>" zawiera wiele elementów członkowskich o tej samej nazwie i podpisie: <signaturelist>

Procedura lub właściwość próbuje zaimplementować procedurę lub właściwość zdefiniowaną w zaimplementowanym interfejsie, ale kompilator znajduje więcej niż jedną wersję procedury interfejsu 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 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  

Ponieważ implementingClass implementuje baseInterface dostarczanie String do parametru ttypu , dwie wersje doSomething programu baseInterface przyjmują identyczne podpisy, jeśli implementingClass chodzi o to. W związku z tym kompilator nie może określić, która wersja ma być implementowana.

Identyfikator błędu: BC30937

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 —

  • Nie implementuj tej klasy bazowej. Nie można zaimplementować go za pomocą zestawu argumentów typu, których używasz, ponieważ należy zaimplementować każdy z jego elementów członkowskich.

Zobacz też