您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)VB.NET如何實(shí)現(xiàn)類構(gòu)造,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
VB.NET類
我在以前的文章里曾經(jīng)提到:VB.NET的出現(xiàn)使得VB6在類的概念及其操作上發(fā)生了巨大的變化。現(xiàn)在就讓我們進(jìn)到這些變化中來(lái)進(jìn)行更深入的探討。首先讓我們看看類到底意味著什么。
不妨假設(shè)我把你帶回到了學(xué)院,現(xiàn)在你走進(jìn)一個(gè)教室,我要求你解釋一下什么是類(class),你可能會(huì)這樣回答:“一組學(xué)生形成一個(gè)班(class)?!焙呛?,如果這樣回答,你真是歪打正著了:沒錯(cuò),在這里,組就是最關(guān)鍵的詞。用面向?qū)ο蟮木幊趟枷雭?lái)看,類就是存儲(chǔ)數(shù)據(jù)同時(shí)給一組相關(guān)代碼賦予協(xié)調(diào)功能的方式。類是面向?qū)ο缶幊痰暮诵摹?/p>
.NET賦予類的新面目
VB6和VB.NET在類的用法上有一個(gè)首要的顯著差別,那就是后者不再采用Set關(guān)鍵詞了。除此以外,在代碼中定義類的方法也有所改變。這些變動(dòng)不僅會(huì)直接影響你編寫的代碼而且更會(huì)改變你組織源文件的方式。
在VB6下,每個(gè)類都必須在單個(gè)源文件內(nèi)增加和定義。而在VB.NET下就不是這樣了:類以代碼塊的形式定義,如下所示:
Public Class MyClass '在這里編寫類的成員代碼! End Class
面對(duì)如此革命性的變化,有些人可能會(huì)急得嘴角發(fā)泡,而大多數(shù)人卻可能并不在乎或不明白用代碼塊定義類到底用什么用。說真的,這全看你的口味。有些人喜歡而且希望一個(gè)文件中就只定義一個(gè)類,而另一些人則更愿意邏輯地組織他們的類。例如,如果你有一個(gè)product類,同時(shí)又有了一個(gè)對(duì)應(yīng)的 products collection類,那么你完全可以把它們放在同一文件里以便更好地組織源文件。
VB.NET類構(gòu)造和析構(gòu)
當(dāng)你的代碼在創(chuàng)建一個(gè)類的實(shí)例時(shí)會(huì)調(diào)用該類的一個(gè)特殊方法:構(gòu)造器(constructor)。同樣的,在類被破壞的時(shí)候則會(huì)調(diào)用析構(gòu)器(destructor)方法。在大多數(shù)面向?qū)ο笳Z(yǔ)言里牽扯到類的構(gòu)造和析構(gòu)時(shí)通常都采用了以上兩個(gè)一般術(shù)語(yǔ)而非具體編碼時(shí)的成員名。我則喜歡采用術(shù)語(yǔ)“structors”來(lái)引用構(gòu)造和析構(gòu)。在VB6語(yǔ)言里,具體的“structors”是Class_Initialize和 Class_Terminate。在VB.NET下,Class_Initialize方法則被重命名為New,而Class_Terminate則成了 Finalize。
按照VB6對(duì)類構(gòu)造器的實(shí)現(xiàn)限制,程序員不得給該方法添加參數(shù)。然而,VB.NET中則對(duì)構(gòu)造器方法提供了參數(shù)支持。在VB.NET下,你現(xiàn)在可以隨意地把參數(shù)添加到這個(gè)方法中來(lái),甚至可以重載該方法。
參數(shù)化的構(gòu)造器如何靈活地創(chuàng)建類呢?舉個(gè)例子,假設(shè)有一個(gè)ADO Connection類。用VB6語(yǔ)言的話,你首先得把該類實(shí)例化,然后在代碼中用ConnectionString屬性定義連接。要用VB.NET的話,這個(gè)類的構(gòu)造器就被參數(shù)化和重載了,這樣,在程序員給對(duì)象實(shí)例化時(shí)就可以給它傳遞一個(gè)連接字符串,這樣你就不必關(guān)心代碼內(nèi)如何設(shè)置以后的連接了。當(dāng)然,你完全可以按老辦法做:什么參數(shù)都不傳遞,以后在代碼中設(shè)置連接字符串。
關(guān)于“VB.NET如何實(shí)現(xiàn)類構(gòu)造”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。