快速了解VB.NET名空間
本人很喜歡VB.NET,在工作中也很喜歡總結(jié)關(guān)于VB.NET名空間的經(jīng)驗(yàn)教訓(xùn),下面就這個(gè)問題來(lái)詳細(xì)說(shuō)說(shuō)吧。在一個(gè).VB文件中可以包含多個(gè)類、模塊以及其它代碼。接下來(lái)的設(shè)計(jì)過程實(shí)際上跟VB的差不多,我們可以手動(dòng)增加其它的代碼到這個(gè)文件中去。這里值得指出的是一旦在IDE創(chuàng)建類的時(shí)候它就會(huì)增加一個(gè)新的文件到工程中去。
在下面的例子中,代碼包含了一個(gè)關(guān)鍵字End Class。這是一個(gè)新的關(guān)鍵字,使用它的目的是為了在一個(gè)源文件中包含多個(gè)類,這點(diǎn)正是VB.NET與VB6在創(chuàng)建類區(qū)別的精髓所在。每當(dāng)我們?cè)?VB.NET中創(chuàng)建類的時(shí)候,我們只是簡(jiǎn)單地將所有的的代碼包含在Class和End Class 之間。例子代碼如下:
- Public Class TheClass
- Public Sub MyWorks()
- End Sub
- End Class
另外在一個(gè)特定的源文件(后綴名為.VB)中,我們可以使用多個(gè)Class...End Class塊。
類與名空間
VB.NET名空間的概念是.NET環(huán)境重要內(nèi)容,因?yàn)樗梢蕴峁┠膫€(gè)類可以被組成邏輯組的機(jī)理,并且使得這些類更容易的搜索以及管理。在VB.NET名空間是使用塊結(jié)構(gòu)來(lái)聲明的。例如:
- Namespace MyNamespace
- Public Class MyClass
- End Class
- End Namespace
在Namespace...End Namespace塊之間聲明的任何類、結(jié)構(gòu)等等將可以使用那個(gè)名空間被尋址。在本例子中,我們的類可以使用這個(gè)名空間來(lái)引用,這樣定義一個(gè)變量就變成了:
- Private obj As MyNamespace.MyClass
因?yàn)閂B.NET名空間是使用塊結(jié)構(gòu)來(lái)創(chuàng)建的,所以在單一的源文件中就不僅可以包含多個(gè)類,而且可以包含多個(gè)名空間。同樣,在一個(gè)相同名空間的類可以被創(chuàng)建在分隔的文件中。換句話說(shuō),在一個(gè)VB.NET工程中,我們可以使用在不同源文件中相同的名空間,而所有在這些名空間中的類將是那個(gè)相同名空間的一部分。
為了更好地理解,下面再給出一個(gè)源文件:
- Namespace MyNamespace
- Public Class MyClass
- End Class
- End Namespace
我們?cè)诠こ讨羞€有以下一個(gè)獨(dú)立的源文件,其代碼如下:
- Namespace MyNamespace
- Public Class MyOtherClass
- End Class
- End Namespace
以上的兩短段代碼是為了說(shuō)明在同一個(gè)VB.NET名空間MyNamespace中有兩個(gè)類:MyClass和MyOtherClass。這里還需指出,在缺省狀態(tài)下,VB.NET工程有一個(gè)根名空間(root namespace),它實(shí)際上是工程屬性的一部分。這個(gè)根VB.NET名空間使用了與工程相同的名字。所以當(dāng)我們使用名空間塊結(jié)構(gòu)的時(shí)候,我們實(shí)際上是增加到根名空間上去。因此,如果你的工程命名為MyProject,那么我們可以這樣來(lái)定義一個(gè)變量:
- Private obj As MyProject.MyNamespace.MyClass
當(dāng)然你也可以改變根名空間,具體操作可以使用菜單選項(xiàng):Project(工程)->Properties(屬性)。
【編輯推薦】