无法实现与此签名匹配的成员“<interfacename>.<procedurename>”,因为接口“<interfacename>”包含多个具有此相同名称和签名的成员:<signaturelist>

更新:2007 年 11 月

一个过程或属性尝试实现在已实现的接口中定义的过程或属性,但编译器找到了具有相同名称和签名的接口过程或属性的多个版本。

在具有构造的泛型类型的情况下可能发生此错误,以下主干声明将对此加以阐释。

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,所以,只要考虑使用 implementingClass,baseInterface 中的 doSomething 的两个版本就采用相同的签名。因此,编译器无法确定要实现哪个版本。

**错误 ID:**BC30937

更正此错误

  • 更改您提供给基类的类型参数,以便类型参数不会导致成员过程或属性中具有一个或多个相同的签名。

    - 或 -

  • 不实现此基类。您无法通过所使用的类型参数集合实现它,因为您必须实现其中的每个成员。

请参见

概念

Implements 关键字和 Implements 语句

参考

Implements (Visual Basic)

Implements 语句