您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關VB.NET中Implements語句怎么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
VB.NET采用的實現(xiàn)接口的語法是VB5發(fā)明的Implements,這個實現(xiàn)接口的語法在當今主流語言中***。比如我有兩個接口:
Interface Interface1 Sub Test() End Interface
Interface Interface2 Sub Test() End Interface
這兩個接口有一個完全一樣的成員Test。假設我需要用一個類同時實現(xiàn)兩個接口會怎么樣呢?先想想看,如果是Java,JScrip.NET這樣的語言就只能用一個Test函數(shù)實現(xiàn)兩個接口的Test成員。假如兩個Test只是偶然重名,其內(nèi)容必須要分別實現(xiàn)怎么辦,于是一些解決接口重名的設計出現(xiàn)了……。VB.NET Implements語句可以讓你想怎么實現(xiàn)接口就怎么實現(xiàn),比如下面的類Implementation用兩個名字根本不一樣的方法實現(xiàn)了兩個接口。
Public Class Implementation Implements Interface1, Interface2 Public Sub Hello() Implements Interface1.Test End Sub Private Sub Hi() Implements Interface2.Test End Sub End Class
也就是說,VB允許用任意名字的函數(shù)實現(xiàn)接口中的成員,而且訪問器可以是任意的,比如想用Public還是Private都可以。C#在處理重名成員上提供了顯式實現(xiàn)(explicit implementation)的語法,其實現(xiàn)上述兩個接口的語法為
public class Class1 : Interface1, Interface2 { public Class1{} void Interface1.Test{} void Interface2.Test{} }
注意這里,C#只能用接口名.成員名的名字來命名實現(xiàn)方法,而且訪問器只能是private,不能公開顯式實現(xiàn)的方法。
在考察了IL以后,我發(fā)現(xiàn).NET支持隱式實現(xiàn)和顯式實現(xiàn)兩種方式。其中隱式實現(xiàn)只要在類里面放一個與接口成員方法名字一樣的方法即可——這一種VB不支持。而顯式實現(xiàn)則在方法的描述信息里加入:
.override TestApp.Interface1::Test
關于“VB.NET中Implements語句怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。