Set用法的探讨
时 间:2012-04-07 13:27:15
作 者:缪炜 ID:24010 城市:江阴
摘 要:今天有学员问,为什么有时候用set,有时候不用set,所以整理了一些相关的资料后,总结一点:为对象变量赋值,一定要用set。
正 文:
Set 语句
将对象引用赋给变量或属性。
语法
Set objectvar = {[New] objectexpression_r | Nothing}
Set 语句的语法包含下面部分:
部分 描述
objectvar 必需的。变量或属性的名称,遵循标准变量命名约定。
New 可选的。通常在声明时使用 New,以便可以隐式创建对象。如果 New 与 Set 一起使用,则将创建该类的一个新实例。如果 objectvar 包含了一个对象引用,则在赋新值时释放该引用。不能使用 New 关键字来创建任何内部数据类型的新实例,也不能创建从属对象。
objectexpression_r 必需的。由对象名,所声明的相同对象类型的其它变量,或者返回相同对象类型的函数或方法所组成的表达式。
Nothing 可选的。断绝 objectvar 与任何指定对象的关联。若没有其它变量指向 objectvar 原来所引用的对象,将其赋为 Nothing 会释放该对象所关联的所有系统及内存资源。
说明
为确保合法,objectvar 必须是与所赋对象相一致的对象类型。
Dim、Private、Public、ReDim以及 Static 语句都只声明了引用对象的变量。在用 Set 语句将变量赋为特定对象之前,该变量并没有引用任何实际的对象。
下面的示例说明了如何使用 Dim 来声明 Form1 类型的数组。Form1 实际上还没有实例。然后使用 Set 将新创建的 Form1 的实例的引用赋给 myChildForms 变量。在 MDI 应用程序中可以使用这些代码来创建子窗体。
Dim myChildForms(1 to 4) As Form1
Set myChildForms(1) = New Form1
Set myChildForms(2) = New Form1
Set myChildForms(3) = New Form1
Set myChildForms(4) = New Form1
通常,当使用 Set 将一个对象引用赋给变量时,并不是为该变量创建该对象的一份副本,而是创建该对象的一个引用。可以有多个对象变量引用同一个对象。因为这些变量只是该对象的引用,而不是对象的副本,因此对该对象的任何改动都会反应到所有引用该对象的变量。不过,如果在 Set 语句中使用 New 关键字,那么实际上就会新建一个该对象的实例。
Set 语句示例
该示例使用 Set 语句将对象引用赋给变量。假定 YourObject 指向一个具有 Text 属性的合法对象。
Dim YourObject, MyObject, MyStr
Set MyObject = YourObject '对象引用赋值。
'MyObject 和 YourObject 引用同一个对象。
YourObject.Text = "Hello World " '初始化属性。
MyStr = MyObject.Text '返回 "Hello World "。
'脱离关联。MyObject 不再引用 YourObject。
Set MyObject = Nothing '释放该对象。
Access软件网官方交流QQ群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- Access对子窗体数据进行批...(10.30)
- 最精简的组合框行来源数据快速输...(10.25)
- Access仿平台的多值选择器...(10.24)
- 【Access日期区间段查询】...(10.22)
- 【Access源码示例】VBA...(10.12)
- Access累乘示例,Acce...(10.09)
- 数值8.88,把整数8去掉,转...(10.08)
- 【Access自定义函数】一个...(09.30)
- 【Access选项卡示例】Ac...(09.09)
学习心得
最新文章
- 【Access IIF函数嵌套示例...(11.26)
- Access快速开发平台--使用组...(11.25)
- Access快速开发平台--对上传...(11.22)
- Access快速开发平台企业版--...(11.18)
- 不会用多表联合查询,多表查询没结果...(11.16)
- 【案例分享】主键字段值含有不间断空...(11.16)
- Access快速开发平台--后台D...(11.14)
- 微软Access邀测新Monaco...(11.12)
- Access列表框左右互选、列表框...(11.11)
- 高效率在导入数据前删除记录(11.10)