vbcorlib类库---一个模仿vb.net方式重写的vb6类库
热度 2已有 2960 次阅读2014-6-19 15:55
|个人分类:vb入门|
vbcorlib介绍
vbcorlib是一个类库。它是用vb6模仿mscorlib改写而成,适度地了解vbcorlib,可以给我们带来很多启发。
什么是mscorlib?
mscorlib是一个netframework的核心类库。
为什么不直接用vb.net而还使用vb6/vba呢?
这个问题没有答案,每个人的想法是如此的截然不同,它真的没有答案。vb.net的优点缺点都被讨论十几年了,vb6的也是一样,只不过一切照旧。有一点我能感觉得到,随着时间流逝,使用vb.net会越来越多。不过应该很难成为主流。vb.net命运也只比jscript.net体面一点点。至于vb6,尘归尘,土归土,落花葬在角落里。但在角落里,永远都有不死的小强们
vbcorlib给我的启示:
1、vb代码可以写得很有艺术感,逻辑层次极强。vbcorlib里面包含了几十个类,而且各个类继承关系很清晰,这种代码组织能力,是很值得我们学习和借鉴的。
2、一切都"象"对象。
vb6不是面向对象的语言。但vbcorlib让VB6的一切都"象"对象。
VB6的对象是什么?vb6里面能用的对象都是com包装下的对象。那什么是com包装的对象呢?我也说不来,具体教程请百度一下。
vbcorlib提供了一个iobject根对象,所有的类都派生自这个iobject。这里的iobject是一个对象。跟vb里的那个object数据类型是完全不一样的。vba里的object是这样定义的:
Object 变量存储为 32 位(4 个字节)的地址形式,其为对象的引用。利用 Set 语句,声明为 Object 的变量可以赋值为任何对象的引用。
这说明Object其实是一个指针,对应的是iDispatch的智能指针。
所以这里iobject跟object是完全不同的两个概念。
3、iobject根对象:
Equals()方法
GetHashCode()
ToString方法
4、数据类型对象化。
用cstring对象对应string,在cstring对象派生stringbuilder、stringwriter、stringreader等很多子类
用datetime对象对应datetime,
5、数据结构体
vba有数组这个结构体。但显然是相当不够的。
vbcorlib提供了,arraylist(数组列表),list(列表)、hashtable(哈希表)、Queue(队列)
6、细化了err对象
在vba中err对象显然相当的原始和不好使。vbcorlib提供了十几种处理错误信息的对象,很一种都很细心分类。
这个错误信息处理太多了,就不再列举了
7、打散了fso对象
严格来说fso不属于vb的,而是属于wsh的。vbcorlib提供了files对象,stream对象,drives对象
8、注册表对象
可以更方便地处理注册表。
9、rest资源处理对象
这个对于vba来说是蛮有用的,vba没有loadrestfrom这样的函数。
10、各种加解密
11、枚举器
12、console对象 这是vb6/vba所没有的。不过似乎意义不太大。
13、弱引用对象。其实这个是相当好用的东西,不过因为比较高端了,所以我就不多说了。
vbcorlib能在实际当中使用吗?