VBS教程:VBScript 语句-Set 语句


Set 语句

将对象引用赋给一个variable或property,或者将对象引用与事件关联 。

Set objectvar = {objectexpression | New classname | Nothing}

-或者-

Set object.eventname = GetRef(procname)

参数

objectvar

必选项,变量或属性名称;符合标准变量命名约定 。

objectexpression

可选项,与对象名称一致的Expression,另一个相同object type、函数或方法的已声明变量,它们返回相同对象类型的对象 。

New

用于创建一个类的新实例的Keyword 。如果 objectvar 包含一个对某个对象的引用,当一个新的引用被赋给这个对象之后,则这个引用将被释放 。New 关键仅用于创建一个class的实例 。

classname

可选项. 创建的类名称 。使用 Class 语句定义类及其语句 。

Nothing

可选项 。断开 objectvar 与任何指定对象或类的关联 。当没有其他变量引用前面的引用对象时,将 objectvar 赋值为 Nothing 以释放与前面的引用对象相关联的系统或内存资源 。

object

必选项 。与 event 相关联的对象名称 。

event

必选项 。函数作用域的事件名称 。

procname

必选项 。包含与event 相关联的 SubFunction 名称的字符串 。

说明

为了使其有效,objectvar 必须与赋值的对象类型相一致 。

Dim, Private, Public, 或 ReDim 语句仅声明一个引用对象的变量 。在使用. Set 语句为一个具体对象赋值之前,没有实际对象可以引用 。

通常, 当您使用 Set 语句将一个对象引用赋给一个变量之前,不会创建那个变量的对象的副本 。实际上,只创建了一个对象的引用 。多个引用对象变量可以引用相同的对象 。因为这些变量都是对象的引用,而不是对对象副本的引用,因此对象中所作的任何变化都可以在引用该对象的所有变量中反映出来 。

Function ShowFreeSpace(drvPath)   Dim fso, d, s   Set fso = CreateObject("Scripting.FileSystemObject")   Set d = fso.GetDrive(fso.GetDriveName(drvPath))   s = "Drive " & UCase(drvPath) & " - "    s = s & d.VolumeName  & "<BR>"   s = s & "Free Space: " & FormatNumber(d.FreeSpace/1024, 0)    s = s & " Kbytes"   ShowFreeSpace = sEnd Function

利用 New 关键词,您可以随时创建一个类的实例,并将一个对象引用变量赋值给它 。赋给类的实例的变量一定利用 Dim (或相似的语句)语句事先已经声明 。

有关使用 Set 语句关联一个过程与对象的详细信息,请参考 GetRef 函数的文档 。