加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

当两个方法具有相同名称但参数不同时,如何在VB.Net中实现接口

发布时间:2020-12-17 00:32:52 所属栏目:大数据 来源:网络整理
导读:我是一个C#程序员,但我必须使用一些VB.Net代码,我遇到了一种情况,我在一个具有相同名称但不同方法参数的接口上有两个方法.当我尝试在类中实现此接口时,VB.Net要求在方法签名后明确声明“Implements MethodName”.由于两个方法名称相同,这使编译器感到困惑.有
我是一个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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读