我是一个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