ASP中类Class相关内容的整理资料 |
Class 对象 使用 Class 语句创建的对象 。提供了对类的各种事件的访问 。 说明 不允许显式地将一个变量声明为 Class 类型 。在 VBScript 的上下文中,“类对象”一词指的是用 VBScript Class 语句定义的任何对象 。 在使用 Class 语句建立了类定义之后,可以用下面的形式创建类的一个实例: Dim X Set X = New classname 由于 VBScript 是一种后期约束型语言,下面的做法是不允许的: Dim X as New classname -或- Dim X X = New classname -或- Set X = New Scripting.FileSystemObject Class 对象的事件 Class 对象提供对类的事件的访问 。 Initialize 事件 在创建类的实例时发生此事件 。 Private Sub Class_Initialize() 语句 End Sub 当类初始化时,statements部分由零个或多个将要运行的代码语句组成 。 说明 下面的例子演示了 Initialize 事件的用法 。 Class TestClass Private Sub Class_Initialize 设置 Initialize 事件 。 MsgBox("TestClass started") End Sub Private Sub Class_Terminate 设置 Terminate 事件 。 MsgBox("TestClass terminated") End Sub End Class Set X = New TestClass 创建一个 TestClass 实例 。 Set X = Nothing 删除实例 。 Terminate 事件 在所关联的类的实例终止时发生此事件 。 Private Sub Class_Terminate() 语句 End Sub 当类初始化时,statements 部分由零个或多个将要运行的代码语句组成 。 说明 下面的例子演示了 Terminate 事件的用法 。 Class TestClass Private Sub Class_Initialize 设置 Initialize 事件 。 MsgBox("TestClass started") End Sub Private Sub Class_Terminate 设置 Terminate 事件 。 MsgBox("TestClass terminated") End Sub End Class Set X = New TestClass 创建一个 TestClass 实例 。 Set X = Nothing 删除实例 。 Class 语句 声明一个类的名称,以及组成该类的变量、属性和方法的定义 。 Class name statements End Class 参数 name 必选项 。Class 的名称;遵照标准的变量命名规则 。 statements 必选项 。一个或多个语句,定义了 Class 的变量、属性和方法 。 说明 在 Class 块中,成员通过相应的声明语句被声明为 Private 或 Public 。被声明为 Private 的将只在 Class 块内是可见的 。被声明为 Public 不仅在 Class 块的内部是可见的,对 Class 块之外的代码也是可见的 。没有使用 Private 或 Public 明确声明的被默认为 Public 。 在类的块内部被声明为 Public 的过程(Sub 或 Function)将成为类的方法 。Public 变量将成为类的属性,同使用 Property Get、Property Let 和 Property Set 显式声明的属性一样 。类的缺省属性和方法是在它们的声明部分用 Default 关键字指定的 。关于如何使用该关键字,请参考单独的声明语句主题 。 Property Get 语句 在 Class 块中,声明构成用来取得(返回)属性值的 Property 过程的主体的名称、参数和代码 。 [Public [Default]| Private] Property Get name [(arglist)] [statements] [[Set] name = expression] [Exit Property] [statements] [[Set] name = expression] End Property 参数 Public 表明Property Get 过程可以被所有脚本中的其他过程访问 。 Default 只与 Public 关键字一起使用,表明 Property Get 过程中定义的属性为类的缺省属性 。 Private 表明 Property Get 过程只对定义它的 Class 块中的其他过程是可以访问的 。 name Property Get 过程的名称;遵守标准的变量命名规则,区别仅仅在于它可以与同一Class块中的Property Let 或 Property Set过程 。 arglist 该变量列表代表了 Property Get 过程被调用时传递给它的参数 。多个参数之间用逗号分隔开 。Property Get 过程中的每个参数的名称必须与 Property Let 过程中的相应参数相同(如果有的话) 。 statements 任意的一组语句,将在 Property Get 过程的主体中执行 。 Set 在将对象作为 Property Get 过程的返回值时使用的关键字 。 expression Property Get 过程的返回值 。 说明 如果未使用 Public 或 Private 明确声明,则 Property Get 过程被缺省为公有的,即它们对于脚本中的其他所有过程都是可见的 。Property Get过程中的局部变量的值在不同的过程调用之间是不保存的 。 在其他任何过程(例如 Function 或 Property Let) 内部都不能定义 Property Get 过程 。 Exit Property 语句将导致立即从 Property Get 过程中退出 。程序将继续执行调用 Property Get 过程的语句之后的程序 。Exit Property 语句可以出现在 Property Get 过程中的任何位置,次数不限 。 与Sub 和 Property Let 过程类似,Property Get 过程是能够接受参数的过程,可以执行一系列的语句,以及改变参数的值 。然而,与Sub 和 Property Let 不同的是,Property Get 过程可以被用于表达式的右侧,用与使用Function 或属性名称相同的方式来返回属性的值 。 要求 版本 5 Property Let 语句 在 Class 块中,声明名称、参数和代码等,它们构成了设置属性值的 Property 过程的主体 。 [Public | Private] Property Let name ( [arglist,] value ) [statement] [Exit Property] [statement] End Property 参数 Public 表明 Property Let 过程可以被所有脚本中的其他所有过程访问 。 Private 表明 Property Let 过程只能被定义之的 Class 块内的其他过程访问 。 name Property Let 过程的名称;遵守标准的变量命名规则,区别仅仅在于其名称可以与相同 Class 块中的 Property Get 或 Property Set 过程相同 。 arglist 该变量列表代表了在调用时被传递到 Property Let 过程的参数 。多个参数之间用逗号隔开 。Property Let 过程的每个参数的名字必须与 Property Get 过程中的相应参数相同 。此外, Property Let 过程的参数比相应的 Property Get 过程总要多一个 。该参数为被赋予属性的值 。 value 该变量中包含要赋予属性的值 。当过程被调用时,该参数将出现在调用表达式的右侧 。 statement 任意的一组语句,将在 Property Let 过程的主体内执行 。 说明 如果未明确地使用 Public 或 Private 进行指定,Property Let 过程被缺省设置为公有的,即它们对于脚本内的其他所有过程都是可见的 。Property Let过程中的局部变量的值在不同的过程调用之间是不被保存的 。 在其他任何过程(例如 Function 或 Property Get)的内部不能够定义 Property Let 过程 。 Exit Property 语句将导致立即从 Property Let 过程中退出 。程序将从调用 Property Let 过程的语句之后的点继续执行 。Exit Property 语句可以出现在 Property Let 过程中的任何位置,次数不限 。 注意 每个 Property Let 语句必须为所定义的过程至少定义一个参数 。该参数(在存在多个参数时的最后一个参数)包含了当 Property Let 语句被调用时要赋予属性的值 。该参数在前面的语法中称为value 。 与 Function 和 Property Get 过程类似,Property Let 过程是一个单独的过程,它可以接受参数,执行一系列的语句,还可以改变参数的值 。不过,与Function 和 Property Get 过程不同的是,它们两者都返回一个值,而Property Let过程只能用于属性赋值表达式的左侧 。 要求 版本 5 Property Set 语句 在 Class 块中,声明名称、参数和代码,这些构成了将引用设置到对象的 Property 过程的主体 。 [Public | Private] Property Set name( [arglist,] reference ) [statement] [Exit Property] [statement] End Property 参数 Public 表明 Property Set 过程可以被所有脚本中的其他所有过程访问 。 Private 表明 Property Set 过程只能被声明之的同一 Class 块中的其他过程访问 。 name Property Set 过程的名称;遵守标准的变量命名规则,不过该名称可以与同一个 Class 块中的 Property Get 或 Property Let 过程相同 。 arglist 变量列表,代表在 Property Set 过程被调用时传递给它的参数 。多个参数之间用逗号分隔开 。此外,Property Set 过程将总是比它相应的 Property Get 过程多一个参数 。这个多出来的参数是被赋予属性的对象 。 reference 变量,其中包含被用于对象引用赋值的右侧的对象引用 。 statement 将要在 Property Set 过程主体中执行的任何一组语句 。 说明 除非使用 Public 或 Private 明确地进行指定,否则 Property Set 过程被设置为缺省的公有模式,即脚本中的其他所有过程都是可见的 。在不同的过程调用时,Property Set 过程中的局部变量是不保存的 。 在其他任何过程(例如Function或Property Let)中都不能够定义Property Set过程 。 Exit Property 语句将导致立即从 Property Set 过程中退出 。程序将继续执行调用 Property Set 过程之后的语句 。Exit Property 语句的数量不受限制,可以出现在 Property Set 过程中的任何位置 。 注意 每个 Property Set 语句都必须为所定义的过程至少定义一个参数 。当 Property Set 语句所定义的过程被调用时,该参数(在多个参数时为最后一个参数)将为属性提供实际的对象引用 。在前面的语法中,该参数称为引用 。 与 Function 和 Property Get 过程类似,Property Set 过程是一个单独的过程,它可以有若干参数,执行一系列的语句,还可以改变参数的值 。然而,与 Function 和 Property Get 过程不同的是,函数和过程都可以返回值,而 Property Set 过程对象引用赋值(Set 语句)的左侧 。 要求 版本 5 Public 语句 定义公有变量并分配存储空间 。在 Class 块中定义私有变量 。 Public varname[([subscripts])][, varname[([subscripts])]] . . . 参数 varname 变量的名称,遵循标准变量命名规则 。 subscripts 数组变量的维数;最多可以声明 60 维的数组 。subscripts 参数使用下列语法: upper [,upper] . . . 数组的下界总是 0 。 说明 Public 语句变量可用于全部脚本中的所有过程 。 在使用引用对象的变量之前,必须用 Set 语句将某个已有对象赋予该变量 。在赋值之前,所声明的对象变量被初始化为 Empty 。 也可用带空圆括号的 Public 语句来声明动态数组 。声明动态数组后,可在过程内使用 ReDim 语句来定义该数组的维数和元素 。如果试图重新声明数组变量的维数,且此数组变量的大小已在 Private、Public 或 Dim 语句中显式地指定,则会发生错误 。 下面例子举例说明如何使用 Public 语句: Public MyNumber 公用 Variant 变量 。 Public MyArray(9) 公用数组变量 。 Variant 变量的多个公用声明 。 Public MyNumber, MyVar, YourNumber Private 语句 定义私有变量并分配存储空间 。在 Class块中定义私有变量 。 Private varname[([subscripts])][, varname[([subscripts])]] . . . 参数 varname 变量的名称;遵循标准变量命名规则 。 subscripts 数组变量的维数,最多可以声明 60 维的数组 。subscripts 参数使用下列语法: upper [, upper] . . . 数组的下界总是 0 。 说明 Private 语句变量只能在声明该变量的脚本中使用 。 在使用引用对象的变量之前,必须用 Set 语句将某个现有对象赋予此变量 。在赋值之前,所声明的对象变量被初始化Empty 。 也可用带空圆括号的 Private 语句声明动态数组 。声明动态数组后,可在过程内使用 ReDim 语句定义该数组的维数和元素 。如果在 Private、Public 或 Dim 语句中已显式指定数组大小,却试图重新声明数组维数,就会发生错误 。 注意 在过程中使用 Private 语句时,通常将 Private 语句放在过程的开始处 。 下面例子举例说明如何使用 Private 语句: Private MyNumber 私有 Variant 变量 。 Private MyArray(9) 私有数组变量 。 Variant 变量的多个私有声明 。 Private MyNumber, MyVar, YourNumber |