4

インターフェイスで変数名を指定する必要がある理由はありますか。たとえば、次のコードを見てください。

 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

これは基本的な質問だと認識しています。好奇心旺盛です。

4

2 に答える 2

2

少なくとも 2.0 では、オーバーライドがインターフェイス シグネチャと一致しなかった場合、技術的に実装していませんでしたhttp://msdn.microsoft.com/en-us/library/ms182251(v=vs.80 .aspx

私は今日それについて確信が持てません。そして、なぜですか?私は知らないよ。あなたは別の言語から来ていますか?私の記憶が正しければ、他の言語のヘッダー ファイルでは署名の型だけが必要で、名前は必要ありませんでした。

可能性のあるだまされたのは、なぜインターフェイスメソッドのパラメーターに名前を付ける必要があるのですか? -これは、遭遇する可能性のある他のいくつかの理由を説明しています.

于 2012-07-25T17:35:40.833 に答える
0

理由の 1 つは、

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

Test を int1 変数から呼び出すときに、どの整数が何であるかを知るにはどうすればよいでしょうか....

基本的に、コンパイラ自体は引数名を気にしませんが、ほとんどの場合気にします。

コメントのあと。

int1 の 2 つの実装があるとします。

Imp1.Test(A,B) および Imp2.Test(B,A)

あなたはやった

Dim myInt1 as Int1

...

...

myInt1.Test( 

そして今、あなたはいっぱいですよね?myInt1 をテストして、imp1 か imp2 かを確認する必要があるため、インターフェイスは時間の無駄です...

于 2012-07-25T17:26:20.927 に答える