时间:2021-05-28
Class对象
使用Class语句创建的对象。提供了对类的各种事件的访问。
说明
不允许显式地将一个变量声明为Class类型。在VBScript的上下文中,“类对象”一词指的是用VBScriptClass语句定义的任何对象。
在使用Class语句建立了类定义之后,可以用下面的形式创建类的一个实例:
DimX
SetX=Newclassname
由于VBScript是一种后期约束型语言,下面的做法是不允许的:
DimXasNewclassname
-或-
DimX
X=Newclassname
-或-
SetX=NewScripting.FileSystemObject
Class对象的事件
Class对象提供对类的事件的访问。
Initialize事件
在创建类的实例时发生此事件。
PrivateSubClass_Initialize()
语句
EndSub
当类初始化时,statements部分由零个或多个将要运行的代码语句组成。
说明
下面的例子演示了Initialize事件的用法。
ClassTestClass
PrivateSubClass_Initialize'设置Initialize事件。
MsgBox("TestClassstarted")
EndSub
PrivateSubClass_Terminate'设置Terminate事件。
MsgBox("TestClassterminated")
EndSub
EndClass
SetX=NewTestClass'创建一个TestClass实例。
SetX=Nothing'删除实例。
Terminate事件
在所关联的类的实例终止时发生此事件。
PrivateSubClass_Terminate()
语句
EndSub
当类初始化时,statements部分由零个或多个将要运行的代码语句组成。
说明
下面的例子演示了Terminate事件的用法。
ClassTestClass
PrivateSubClass_Initialize'设置Initialize事件。
MsgBox("TestClassstarted")
EndSub
PrivateSubClass_Terminate'设置Terminate事件。
MsgBox("TestClassterminated")
EndSub
EndClass
SetX=NewTestClass'创建一个TestClass实例。
SetX=Nothing'删除实例。
Class语句
声明一个类的名称,以及组成该类的变量、属性和方法的定义。
Classname
statements
EndClass
参数
name 必选项。Class的名称;遵照标准的变量命名规则。
statements 必选项。一个或多个语句,定义了Class的变量、属性和方法。
说明
在Class块中,成员通过相应的声明语句被声明为Private或Public。被声明为Private的将只在Class块内是可见的。被声明为Public不仅在Class块的内部是可见的,对Class块之外的代码也是可见的。没有使用Private或Public明确声明的被默认为Public。
在类的块内部被声明为Public的过程(Sub或Function)将成为类的方法。Public变量将成为类的属性,同使用PropertyGet、PropertyLet和PropertySet显式声明的属性一样。类的缺省属性和方法是在它们的声明部分用Default关键字指定的。关于如何使用该关键字,请参考单独的声明语句主题。
PropertyGet语句
在Class块中,声明构成用来取得(返回)属性值的Property过程的主体的名称、参数和代码。
[Public[Default]|Private]PropertyGetname[(arglist)]
[statements]
[[Set]name=expression]
[ExitProperty]
[statements]
[[Set]name=expression]
EndProperty
参数
Public 表明PropertyGet过程可以被所有脚本中的其他过程访问。
Default 只与Public关键字一起使用,表明PropertyGet过程中定义的属性为类的缺省属性。
Private 表明PropertyGet过程只对定义它的Class块中的其他过程是可以访问的。
name PropertyGet过程的名称;遵守标准的变量命名规则,区别仅仅在于它可以与同一Class块中的PropertyLet或PropertySet过程。
arglist 该变量列表代表了PropertyGet过程被调用时传递给它的参数。多个参数之间用逗号分隔开。PropertyGet过程中的每个参数的名称必须与PropertyLet过程中的相应参数相同(如果有的话)。
statements
任意的一组语句,将在PropertyGet过程的主体中执行。
Set
在将对象作为PropertyGet过程的返回值时使用的关键字。
expression PropertyGet过程的返回值。
说明
如果未使用Public或Private明确声明,则PropertyGet过程被缺省为公有的,即它们对于脚本中的其他所有过程都是可见的。PropertyGet过程中的局部变量的值在不同的过程调用之间是不保存的。
在其他任何过程(例如Function或PropertyLet)内部都不能定义PropertyGet过程。
ExitProperty语句将导致立即从PropertyGet过程中退出。程序将继续执行调用PropertyGet过程的语句之后的程序。ExitProperty语句可以出现在PropertyGet过程中的任何位置,次数不限。
与Sub和PropertyLet过程类似,PropertyGet过程是能够接受参数的过程,可以执行一系列的语句,以及改变参数的值。然而,与Sub和PropertyLet不同的是,PropertyGet过程可以被用于表达式的右侧,用与使用Function或属性名称相同的方式来返回属性的值。
要求
版本5
PropertyLet语句
在Class块中,声明名称、参数和代码等,它们构成了设置属性值的Property过程的主体。
[Public|Private]PropertyLetname(
[arglist,]value
)
[statement]
[ExitProperty]
[statement]
EndProperty
参数
Public 表明PropertyLet过程可以被所有脚本中的其他所有过程访问。
Private 表明PropertyLet过程只能被定义之的Class块内的其他过程访问。
name PropertyLet过程的名称;遵守标准的变量命名规则,区别仅仅在于其名称可以与相同Class块中的PropertyGet或PropertySet过程相同。
arglist该变量列表代表了在调用时被传递到PropertyLet过程的参数。多个参数之间用逗号隔开。PropertyLet过程的每个参数的名字必须与PropertyGet过程中的相应参数相同。此外,PropertyLet过程的参数比相应的PropertyGet过程总要多一个。该参数为被赋予属性的值。
value该变量中包含要赋予属性的值。当过程被调用时,该参数将出现在调用表达式的右侧。
statement任意的一组语句,将在PropertyLet过程的主体内执行。
说明
如果未明确地使用Public或Private进行指定,PropertyLet过程被缺省设置为公有的,即它们对于脚本内的其他所有过程都是可见的。PropertyLet过程中的局部变量的值在不同的过程调用之间是不被保存的。
在其他任何过程(例如Function或PropertyGet)的内部不能够定义PropertyLet过程。
ExitProperty语句将导致立即从PropertyLet过程中退出。程序将从调用PropertyLet过程的语句之后的点继续执行。ExitProperty语句可以出现在PropertyLet过程中的任何位置,次数不限。
注意每个PropertyLet语句必须为所定义的过程至少定义一个参数。该参数(在存在多个参数时的最后一个参数)包含了当PropertyLet语句被调用时要赋予属性的值。该参数在前面的语法中称为value。
与Function和PropertyGet过程类似,PropertyLet过程是一个单独的过程,它可以接受参数,执行一系列的语句,还可以改变参数的值。不过,与Function和PropertyGet过程不同的是,它们两者都返回一个值,而PropertyLet过程只能用于属性赋值表达式的左侧。
要求
版本5
PropertySet语句
在Class块中,声明名称、参数和代码,这些构成了将引用设置到对象的Property过程的主体。
[Public|Private]PropertySetname(
[arglist,]reference
)
[statement]
[ExitProperty]
[statement]
EndProperty
参数
Public
表明PropertySet过程可以被所有脚本中的其他所有过程访问。
Private
表明PropertySet过程只能被声明之的同一Class块中的其他过程访问。
name
PropertySet过程的名称;遵守标准的变量命名规则,不过该名称可以与同一个Class块中的PropertyGet或PropertyLet过程相同。
arglist
变量列表,代表在PropertySet过程被调用时传递给它的参数。多个参数之间用逗号分隔开。此外,PropertySet过程将总是比它相应的PropertyGet过程多一个参数。这个多出来的参数是被赋予属性的对象。
reference
变量,其中包含被用于对象引用赋值的右侧的对象引用。
statement
将要在PropertySet过程主体中执行的任何一组语句。
说明
除非使用Public或Private明确地进行指定,否则PropertySet过程被设置为缺省的公有模式,即脚本中的其他所有过程都是可见的。在不同的过程调用时,PropertySet过程中的局部变量是不保存的。
在其他任何过程(例如Function或PropertyLet)中都不能够定义PropertySet过程。
ExitProperty语句将导致立即从PropertySet过程中退出。程序将继续执行调用PropertySet过程之后的语句。ExitProperty语句的数量不受限制,可以出现在PropertySet过程中的任何位置。
注意每个PropertySet语句都必须为所定义的过程至少定义一个参数。当PropertySet语句所定义的过程被调用时,该参数(在多个参数时为最后一个参数)将为属性提供实际的对象引用。在前面的语法中,该参数称为引用。
与Function和PropertyGet过程类似,PropertySet过程是一个单独的过程,它可以有若干参数,执行一系列的语句,还可以改变参数的值。然而,与Function和PropertyGet过程不同的是,函数和过程都可以返回值,而PropertySet过程对象引用赋值(Set语句)的左侧。
要求
版本5
Public语句
定义公有变量并分配存储空间。在Class块中定义私有变量。
Publicvarname[([subscripts])][,varname[([subscripts])]]...
参数
varname
变量的名称,遵循标准变量命名规则。
subscripts
数组变量的维数;最多可以声明60维的数组。subscripts参数使用下列语法:
upper[,upper]...
数组的下界总是0。
说明
Public语句变量可用于全部脚本中的所有过程。
在使用引用对象的变量之前,必须用Set语句将某个已有对象赋予该变量。在赋值之前,所声明的对象变量被初始化为Empty。
也可用带空圆括号的Public语句来声明动态数组。声明动态数组后,可在过程内使用ReDim语句来定义该数组的维数和元素。如果试图重新声明数组变量的维数,且此数组变量的大小已在Private、Public或Dim语句中显式地指定,则会发生错误。
下面例子举例说明如何使用Public语句:
PublicMyNumber'公用Variant变量。
PublicMyArray(9)'公用数组变量。
'Variant变量的多个公用声明。
PublicMyNumber,MyVar,YourNumber
Private语句
定义私有变量并分配存储空间。在Class块中定义私有变量。
Privatevarname[([subscripts])][,varname[([subscripts])]]...
参数
varname
变量的名称;遵循标准变量命名规则。
subscripts
数组变量的维数,最多可以声明60维的数组。subscripts参数使用下列语法:
upper[,upper]...
数组的下界总是0。
说明
Private语句变量只能在声明该变量的脚本中使用。
在使用引用对象的变量之前,必须用Set语句将某个现有对象赋予此变量。在赋值之前,所声明的对象变量被初始化Empty。
也可用带空圆括号的Private语句声明动态数组。声明动态数组后,可在过程内使用ReDim语句定义该数组的维数和元素。如果在Private、Public或Dim语句中已显式指定数组大小,却试图重新声明数组维数,就会发生错误。
注意在过程中使用Private语句时,通常将Private语句放在过程的开始处。
下面例子举例说明如何使用Private语句:
PrivateMyNumber'私有Variant变量。
PrivateMyArray(9)'私有数组变量。
'Variant变量的多个私有声明。
PrivateMyNumber,MyVar,YourNumber
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文主要介绍了ES6中Class和Module的相关内容,分享出来供大家参考学习,下面来看看详细的介绍:一、ClassES6引入了Class(类)这个概念,作为
前言本文主要给大家介绍的是关于Java通过Class类获取Class对象的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍:阅读API的C
最近有网友问到小编关于微信怎么去除第三类账户,小编也是查了相关的资料,进行了整理,以下就是相关内容了,如果您需要的话或是比较感兴趣可以一起来看看哦,希望对您
最近有网友问到小编关于微信名下怎么注销三类账户,小编也是查了相关的资料,进行了整理,以下就是相关内容了,如果您需要的话或是比较感兴趣可以一起来看看哦,希望对您有
2017淘宝嘉年华海选报名正在火热进行中,想必不少卖家朋友都想知道2017双12淘宝嘉年华海选报名资料如何填写?那接下来开淘小编为卖家朋友们整理相关内容。