我是一个C#程序员,但我必须使用一些VB.Net代码,我遇到了一种情况,我在一个具有相同名称但不同方法参数的接口上有两个方法.当我尝试在类中实现此接口时,VB.Net要求在方法签名后明确声明“Implements MethodName”.由于两个方法名称相同,这使编译器感到困惑.有办法解决这类问题吗?我怀疑这一定是常见的事.有什么想法吗?
注:这更像是程序员没有验证有问题的界面没有从他下面改变的情况.
这怎么会让编译器感到困惑?
编译器期望为每个方法签名找到实现,并通过其签名区分实现.
编译器期望为每个方法签名找到实现,并通过其签名区分实现.
如果签名是相同/不可区分的(在大多数情况下,这意味着参数的顺序是相同的类型),您将得到与接口相关的设计时错误,并说这两种方法不能相互重载,因为它们有相同的签名.
所以,无论如何,编译器不应该混淆.
如果您需要进一步的帮助,请附上代码示例 – 这些内容相对容易解决.
提示:在编写实现时,只要记下“implements MyInterface”并按Enter键,Visual Studio就会创建一个实现的“骨架”代码,这样可以节省编写方法签名并将它们与接口关联起来.
Interface MyInterface Sub MySub(ByVal arg0 As DateTime) Sub MySub(ByVal arg0 As ULong) End Interface Class MyImplementation Implements MyInterface Public Sub MySub(ByVal arg0 As Date) Implements MyInterface.MySub ... End Sub Public Sub MySub(ByVal arg0 As ULong) Implements MyInterface.MySub ... End Sub End Class