实现独立类库中定义的接口时修改实现方法名无报错问题咨询
问题原因
这是Visual Basic(VB)语言本身的接口实现机制的正常设计,你认知中「接口实现的方法名必须和接口定义名称匹配」是C#等其他.NET语言的隐式接口实现规则,不适用于VB。
核心规则说明
在VB中,类方法和接口成员的映射关系完全由方法声明末尾的Implements 接口名.接口成员名子句显式绑定,类本身的方法名称不需要和接口成员名称一致:
- 只要你保留了
Implements InterfaceHolder.IMaths.ADD子句,无论你把类中的方法名ADD改成任何其他合法名称,编译器都会认为你已经正确实现了IMaths接口的ADD方法,不会抛出错误。 - 只有当你没有为接口的所有成员提供对应的
Implements绑定,或者Implements子句指定的接口成员签名不匹配时,编译器才会报错。
示例:以下代码是完全合法的VB语法
Imports MyInterface Public Class MathOperations Implements InterfaceHolder.IMaths ' 类方法名和接口方法名完全不同,依然属于合法实现 Public Function CalculateSum(a As Integer, b As Integer) As Integer Implements InterfaceHolder.IMaths.ADD Return a + b End Function End Class
额外注意
你原来的类库B代码中,Return a + b之后的Throw New NotImplementedException()是不可达代码,永远不会执行,可以直接删除。
内容的提问来源于stack exchange,提问作者Sougata
相关产品推荐
相关产品推荐

