VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索
查看: 6020|回复: 2

[经验技巧] 终于发现VB的类模块里也能用Me

[复制链接]
 楼主| 发表于 2011-9-5 13:41:59 | 显示全部楼层 |阅读模式
我本想在类模块被初始化时调用外部函数将自身放到全局变量里,但是找不到什么东西可以指向自身,而其他语言里都有像this、self这样的指针。后来我想到Form里可以用Me指向自身,试验后发现类模块里也可以使用这个东西,例子:
Class1中:
  1. Option Explicit

  2. Sub abc()
  3.     MsgBox "123"
  4. End Sub

  5. Private Sub Class_Initialize()
  6.     MsgBox Hex(ObjPtr(Me))
  7.     Me.abc
  8. End Sub
复制代码
窗体中:
  1. Option Explicit

  2. Private Sub Form_Load()
  3.     Dim a As Class1
  4.     Set a = New Class1
  5. End Sub
复制代码
接着运行看到先弹出类模块的实例指针,然后是弹出“123”,说明类模块里亦可以使用Me

点评

你太火星了……我老早就用了,举个例子:摇立体里面有:Implements clsFakeDXUIEventCallback .......... Set obj.EventCallback = Me 其中obj是一个FakeDXUI山寨控件  发表于 2011-9-5 17:09

评分

参与人数 1威望 +1 人气 +1 收起 理由
peace2008 + 1 + 1 细心挖掘

查看全部评分

发表于 2011-9-5 16:28:51 | 显示全部楼层
楼主很厉害,竟然发现了这个秘密...
ps:好像大家都用好久了吧. 闭门造车不要闭太久啊
回复 支持 反对

使用道具 举报

发表于 2011-9-5 21:43:42 | 显示全部楼层
me属性可以用于访问用户自己定义的公共的属性和方法
usercontrol用于访问控件约定的属性和方法

事实上,在类模块内部过程或函数中,最好不要使用me和usercontrol来访问自己,因为这需要进行引用转换,会浪费cpu周期。

这两个属性最大的用处是:
作为外部过程或函数的的参数。
相同的类的多个实例之间互相访问。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

文字版|手机版|小黑屋|VBGood  

GMT+8, 2022-6-29 21:02

VB爱好者乐园(VBGood)
快速回复 返回顶部 返回列表