Member '<interfacename>.<procedurename>' that matches this signature cannot be implemented because the interface '<interfacename>' contains multiple members with this same name and signature: <signaturelist>

A procedure or property attempts to implement a procedure or property defined in an implemented interface, but the compiler finds more than one version of the interface procedure or property with the same name and signature.

This error can occur in a situation with constructed generic types, as the following skeleton declarations illustrate.

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

Because implementingClass implements baseInterface supplying String to its type parameter t, the two versions of doSomething in baseInterface take on identical signatures as far as implementingClass is concerned. As a result, the compiler cannot determine which version to implement.

Error ID: BC30937

To correct this error

  • Change the type argument or arguments you supply to the base class so that it does not result in one or more identical signatures of member procedures or properties.

    -or-

  • Do not implement this base class. You cannot implement it with the set of type arguments you are using, because you must implement every one of its members.

See Also

Concepts

Implements Keyword and Implements Statement

Reference

Implements (Visual Basic)

Implements Statement