Set
将对象引用赋给变量或属性。
语法:
Set objectvar = { [ New ] objectexpression | Nothing }
- objectvar
- 变量或属性的名称;遵循标准变量命名约定。
- New
- 可选 New通常在声明期间使用以启用隐式对象创建。当New与Set一起使用时,它创建类的新实例。如果objectvar包含对对象的引用,则在赋新引用时释放旧引用。New关键字不能用于创建任何内部数据类型的新实例,也不能用于创建依赖对象。
- objectexpression
- 由对象名称、同一对象类型的另一个已声明变量,或返回同一对象类型对象的函数或方法组成的表达式。
- Nothing
- 可选 中断objectvar与任何特定对象的关联。将Nothing赋给objectvar时,如果没有其他变量引用先前引用的对象,将释放与该对象关联的所有系统和内存资源。
要有效,objectvar必须是与其赋值对象一致的对象类型。
Dim、Private、Public、ReDim和Static语句仅声明引用对象的变量。在Set语句赋值特定对象之前,没有实际对象被引用。
以下示例说明如何使用Dim声明类型为Form1的数组。Form1的实例实际不存在。然后Set将Form1新实例的引用赋给myChildForms变量。此类代码可用于在MDI应用程序中创建子窗体。
vb
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语句将对象引用赋给变量。假设YourObject是具有Text属性的有效对象。
vb
Dim YourObject, MyObject, MyStr
Set MyObject = YourObject ' Assign object reference.
' MyObject and YourObject refer to the same object.
YourObject.Text = "Hello World" ' Initialize property.
MyStr = MyObject.Text ' Returns "Hello World".
' Discontinue association. MyObject no longer refers to YourObject.
Set MyObject = Nothing ' Release the object.