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

(0)

相关推荐

  • ASP中类Class相关内容的整理资料

    Class 对象 使用 Class 语句创建的对象.提供了对类的各种事件的访问. 说明 不允许显式地将一个变量声明为 Class 类型.在 VBScript 的上下文中,"类对象"一词指的是用 VBScript Class 语句定义的任何对象. 在使用 Class 语句建立了类定义之后,可以用下面的形式创建类的一个实例: Dim X Set X = New classname 由于 VBScript 是一种后期约束型语言,下面的做法是不允许的: Dim X as New classna

  • asp.net DataTable相关操作集锦(筛选,取前N条数据,去重复行,获取指定列数据等)

    本文实例总结了asp.net DataTable相关操作.分享给大家供大家参考,具体如下: #region DataTable筛选,排序返回符合条件行组成的新DataTable或直接用DefaultView按条件返回 /// <summary> /// DataTable筛选,排序返回符合条件行组成的新DataTable或直接用DefaultView按条件返回 /// eg:SortExprDataTable(dt,"Sex='男'","Time Desc&quo

  • PHP针对伪静态的注入总结【附asp与Python相关代码】

    本文实例讲述了PHP针对伪静态的注入.分享给大家供大家参考,具体如下: 一:中转注入法 1.通过http://www.xxx.com/news.php?id=1做了伪静态之后就成这样了 http://www.xxx.com/news.php/id/1.html 2.测试步骤: 中转注入的php代码:inject.php <?php set_time_limit(0); $id=$_GET["id"]; $id=str_replace(" ","%20

  • 前端html中jQuery实现对文本的搜索功能并把搜索相关内容显示出来

    做项目的时候有这么一个需求,客户信息显示出来后我要搜索查找相关的客户,并把相关的客户信息全部显示出来,因为一个客户全部信息我写在一个div里面  所以显示的时候就是显示整个div.先看看实现的效果: 当我输入瓦窑村  就把相关带瓦窑的客户信息显示出来并把瓦窑村字体设置红色, 其他的就不显示:下面看html代码: <body> <div class="bar bar-header-secondary" style="top:0"> <di

  • java 中如何获取字节码文件的相关内容

    java 中如何获取字节码文件的相关内容 反射机制是指在运行状态中,对任意一个类(class文件),都能知道这个类的所有属性和方法:对任意一个对象,都能调用这个对象的方法和属性.这种动态的获取信息和动态的调用对象的方法的功能称为--Java语言的反射机制. 简单点说,动态的获取类中的信息,这就是Java的反射机制. 在Java的反射机制中,我们可以通过配置文件信息,然后通过类名来获取类中包含的详细信息,如构造函数.成员变量和成员函数等.在接下来,作者将分别演示如何通过类名来获取类中包含的信息.

  • JS动态增加删除UL节点LI及相关内容示例

    复制代码 代码如下: <ul id="ul"> <li id=1>11111111111111111<a href="javascript:del(1);">del</a></li> <li id=2 >22222222222222222<a href="javascript:del(2);">del</a></li> <li id=

  • MyBatis通用Mapper实现原理及相关内容

    MyBatis通用Mapper实现原理 本文会先介绍通用 Mapper 的简单原理,然后使用最简单的代码来实现这个过程. 基本原理 通用 Mapper 提供了一些通用的方法,这些通用方法是以接口的形式提供的,例如. public interface SelectMapper<T> { /** * 根据实体中的属性值进行查询,查询条件使用等号 */ @SelectProvider(type = BaseSelectProvider.class, method = "dynamicSQL

  • 浅谈Asp.Net母版页和内容页运行机制

    从上面的讲解中可以看出,单独的母版页是不能被用户所访问的.没有内容页支持,母版页仅仅是一个页面模板,没有更多的实用价值.同样道理,单独的内容页没有母版页的支持,也不能够应用.这两者是不可分割的,只有同时正确创建和使用母版页及内容页,才能发挥它们的强大功能.为了便于读者理解,有必要讲解一下母版页与内容页的运行机制. 母版页和内容页的运行过程可以概括为以下5个步骤. 用户通过输入内容页的URL来请求某内容页. 获取内容页位置后,读取内容页@ Page指令.如果该指令引用一个母版页,则读取该母版页.

  • JUnit5相关内容简介

    著名的Java单元测试框架Junit 4已经出来很长时间了,当时我发现JUnit 5已经处于测试版,就准备写文章来介绍JUnit 5.不过因为还是测试版,所以有些地方还不太完善,我也有点懒没有好好写.这几天突然想起这事了,在到官网上查看,发现就在9月10日,JUnit 5的正式版终于出来了!那么我就正好把文章重新好好写写,为大家介绍这个最新的JUnit框架. 框架结构 和JUnit 4相比,JUnit 5的结构非常清晰,为自定义插件.IDE测试执行等扩展功能做了很好的支持.这一点从项目结构就可以

  • vue父组件数据更新子组件相关内容未改变问题(用watch解决)

    父组件数据更新子组件相关内容未改变 父组件 在父组件中,根据后台给的数据(数组),v-for生成子组件    <div class="exist">                     <existProject :itemprop="item" v-for="(item, index) in getData" :key="index" :index="index" @click=&q

随机推荐