我是一名 C# 程序员,但我必须使用一些 VB.Net 代码,我遇到了这样一种情况,即我在一个接口(interface)上有两个方法,它们的名称相同但方法参数不同。当我试图在一个类中实现这个接口(interface)时,VB.Net 要求在方法签名之后显式声明“实现 MethodName”。由于两个方法名称相同,这会使编译器感到困惑。有没有办法解决这类问题?我怀疑这一定是普遍现象。有什么想法吗?
注:这更像是程序员没有验证有问题的接口(interface)没有从他下面改变的情况。
最佳答案
这如何混淆编译器?
编译器希望为每个方法签名找到一个实现,并通过它们的签名来区分这些实现。
如果签名相同/无法区分(在大多数情况下,这意味着参数的类型相同且顺序相同),您将收到与接口(interface)相关的设计时错误,说明这两个方法不能重载,因为它们有相同的签名。
所以,无论如何,编译器不应该混淆。
如果您需要进一步的帮助,请附上代码示例 - 这些问题相对容易解决。
提示:在编写实现时,只要您写下“implements MyInterface”并按 Enter - Visual Studio 将创建实现的“骨架”代码,这样您就无需编写方法签名并将它们与接口(interface)相关联。
具有两个具有相同名称且一切正常的方法的示例代码:
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
关于vb.net - 当两个方法同名但参数不同时如何在VB.Net中实现接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2372726/