注册 登录
Office中国论坛/Access中国论坛 返回首页

ganlinlao的个人空间 http://www.office-cn.net/?230471 [收藏] [复制] [分享] [RSS]

日志

vbcorlib类库---一个模仿vb.net方式重写的vb6类库

热度 2已有 2826 次阅读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能在实际当中使用吗?





发表评论 评论 (2 个评论)

回复 t小宝 2014-6-20 00:10
vbcorlib能在实际当中使用吗?
回复 tmtony 2014-6-27 21:59
小宝也在啊.看来大家都是粉丝

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-4-16 13:43 , Processed in 0.075651 second(s), 18 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

返回顶部