.NET接口签名

时间:2012-07-25 17:05:34

标签: asp.net vb.net

是否有必要在接口中指定变量名称的原因。例如,请查看以下代码:

 Public Class Class1
        Public Function Test(ByVal j As Integer)

        End Function End Class

    Public Interface int1
        Function Test(ByVal i As Integer)
      End Interface

类中的整数名为j,但在接口中命名为i。为什么接口不是这样的:

Public Interface int1
            Function Test(Integer)
          End Interface

我意识到这是一个基本问题。我觉得很好奇。

2 个答案:

答案 0 :(得分:2)

至少,在2.0中,如果覆盖与界面签名不匹配,那么你在技术上并没有实现它http://msdn.microsoft.com/en-us/library/ms182251(v=vs.80).aspx

我现在不确定。至于为什么?我不知道。你是来自另一种语言吗?如果我没记错,其他语言标题文件只需要签名中的类型而不是名称。

Why do we have to name interface method parameters?的可能欺骗 - 这解释了您可能遇到的其他几个原因。

答案 1 :(得分:0)

一个原因就是如果你有

Public Interface int1
Function Test(Integer,Integer)           
End Interface 

你怎么知道从int1变量调用Test时,哪个整数是......

基本上编译器本身并不关心参数名称,我们几乎总是这样做。

评论之后。

假设您有两个int1实现

Imp1.Test(A,B)和Imp2.Test(B,A)

你已经完成了

Dim myInt1 as Int1

...

...

myInt1.Test( 

现在你被塞满了不是吗?您必须测试myInt1以查看是否为imp1或imp2,因此界面完全浪费时间......