vbcorlib類庫(kù)---一個(gè)模仿vb.net方式重寫的vb6類庫(kù)
熱度 2已有 3123 次閱讀2014-6-19 15:55
|個(gè)人分類:vb入門|
vbcorlib介紹
vbcorlib是一個(gè)類庫(kù)。它是用vb6模仿mscorlib改寫而成,適度地了解vbcorlib,可以給我們帶來很多啟發(fā)。
什么是mscorlib?
mscorlib是一個(gè)netframework的核心類庫(kù)。
為什么不直接用vb.net而還使用vb6/vba呢?
這個(gè)問題沒有答案,每個(gè)人的想法是如此的截然不同,它真的沒有答案。vb.net的優(yōu)點(diǎn)缺點(diǎn)都被討論十幾年了,vb6的也是一樣,只不過一切照舊。有一點(diǎn)我能感覺得到,隨著時(shí)間流逝,使用vb.net會(huì)越來越多。不過應(yīng)該很難成為主流。vb.net命運(yùn)也只比jscript.net體面一點(diǎn)點(diǎn)。至于vb6,塵歸塵,土歸土,落花葬在角落里。但在角落里,永遠(yuǎn)都有不死的小強(qiáng)們
vbcorlib給我的啟示:
1、vb代碼可以寫得很有藝術(shù)感,邏輯層次極強(qiáng)。vbcorlib里面包含了幾十個(gè)類,而且各個(gè)類繼承關(guān)系很清晰,這種代碼組織能力,是很值得我們學(xué)習(xí)和借鑒的。
2、一切都"象"對(duì)象。
vb6不是面向?qū)ο蟮恼Z(yǔ)言。但vbcorlib讓VB6的一切都"象"對(duì)象。
VB6的對(duì)象是什么?vb6里面能用的對(duì)象都是com包裝下的對(duì)象。那什么是com包裝的對(duì)象呢?我也說不來,具體教程請(qǐng)百度一下。
vbcorlib提供了一個(gè)iobject根對(duì)象,所有的類都派生自這個(gè)iobject。這里的iobject是一個(gè)對(duì)象。跟vb里的那個(gè)object數(shù)據(jù)類型是完全不一樣的。vba里的object是這樣定義的:
Object 變量存儲(chǔ)為 32 位(4 個(gè)字節(jié))的地址形式,其為對(duì)象的引用。利用 Set 語(yǔ)句,聲明為 Object 的變量可以賦值為任何對(duì)象的引用。
這說明Object其實(shí)是一個(gè)指針,對(duì)應(yīng)的是iDispatch的智能指針。
所以這里iobject跟object是完全不同的兩個(gè)概念。
3、iobject根對(duì)象:
Equals()方法
GetHashCode()
ToString方法
4、數(shù)據(jù)類型對(duì)象化。
用cstring對(duì)象對(duì)應(yīng)string,在cstring對(duì)象派生stringbuilder、stringwriter、stringreader等很多子類
用datetime對(duì)象對(duì)應(yīng)datetime,
5、數(shù)據(jù)結(jié)構(gòu)體
vba有數(shù)組這個(gè)結(jié)構(gòu)體。但顯然是相當(dāng)不夠的。
vbcorlib提供了,arraylist(數(shù)組列表),list(列表)、hashtable(哈希表)、Queue(隊(duì)列)
6、細(xì)化了err對(duì)象
在vba中err對(duì)象顯然相當(dāng)?shù)脑己筒缓檬埂bcorlib提供了十幾種處理錯(cuò)誤信息的對(duì)象,很一種都很細(xì)心分類。
這個(gè)錯(cuò)誤信息處理太多了,就不再列舉了
7、打散了fso對(duì)象
嚴(yán)格來說fso不屬于vb的,而是屬于wsh的。vbcorlib提供了files對(duì)象,stream對(duì)象,drives對(duì)象
8、注冊(cè)表對(duì)象
可以更方便地處理注冊(cè)表。
9、rest資源處理對(duì)象
這個(gè)對(duì)于vba來說是蠻有用的,vba沒有l(wèi)oadrestfrom這樣的函數(shù)。
10、各種加解密
11、枚舉器
12、console對(duì)象 這是vb6/vba所沒有的。不過似乎意義不太大。
13、弱引用對(duì)象。其實(shí)這個(gè)是相當(dāng)好用的東西,不過因?yàn)楸容^高端了,所以我就不多說了。
vbcorlib能在實(shí)際當(dāng)中使用嗎?