vb.net - 当两个方法同名但参数不同时如何在VB.Net中实现接口(interface)

标签 vb.net interface implementation

我是一名 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/

相关文章:

Java日期检查帮助然后转换为VB.NET 2010

vb.net - 如何删除文本框中带有斜杠的最后一个单词 VB.NET

c# - 如何就地刷新组合框项目?

C# - 属性说明

c# - 每个过滤器的输入/输出类型不同的通用管道

android - 如何在android中实现不自定义的SD卡库?

C 链表实现

vb.net - 模块真的与 SharedMembers-NotInheritable-PrivateNew 类相同吗?

java - 为什么每当我在父类 - Android 中触发一个操作时,我的子类方法总是被调用?

r - 在 R 中使用神经网络包时如何实现自己的错误函数?