1


在VBScript中使用类_microsoft

前言

  2

在VBScript中使用类_microsoft

首先,在我进入实质性主题并解释如何建立类之前,我希望保证你知道“对象”。虽然你可以在程序中使用对象而不用知道其正确的规则,但我并不建议如此!对于对象的初学者,接下来的部分将让你了解其概念及内容。已经了解面向对象编程(OOP)的读者可以跳过这章节。 

  3

在VBScript中使用类_microsoft

      导论

  4

在VBScript中使用类_microsoft

        “对象是什么?”——对象通常代表某种实体,主要是一个变量和函数的集合。

  5

在VBScript中使用类_microsoft

        “实体是什么?”——字面上说,实体是一个“事物”,我的意思是一个概念或者任何一个物体。例如,一辆汽车是一个实体,因为它是一个物体。你公司销售部门销售产品也是一个实体,当然,你也可以将其拆开来看,销售人员、客户、产品等都是实体。

  6

在VBScript中使用类_microsoft

让我们更深入的来看“销售”这个实体(对象)。为了使你更准确地有一个销售的“映像”,你需要知道客户买了什么,是哪个客户,谁是销售人员等等……这看来是一个简单的事件,但假设所有信息是存储在单独的数据库表中的,那么当你需要获得某个销售过程所有相关信息时,你必须在你的数据库中做多次独立查询,再将所有的数据集拢。有没有更简便的办法而一次获得销售的所有信息呢?“对象”。

  7

在VBScript中使用类_microsoft

     在对象中,你可以植入代码以从其他表中获得数据,你也可以保存对象属性的所有信息,这样,你可以轻松地使用代码管理你的销售数据。例如:

  8

在VBScript中使用类_microsoft


  9

在VBScript中使用类_microsoft

' Open the database connection

 10

在VBScript中使用类_microsoft

Set  objConn  =  Server. CreateObject ( " ADODB.Connection " )

 11

在VBScript中使用类_microsoft

objConn.Open 

" MyDSN"

 12

在VBScript中使用类_microsoft


 13

在VBScript中使用类_microsoft

' Create the recordset object

 14

在VBScript中使用类_microsoft

Set  objRS  =  Server. CreateObject ( " ADODB.Recordset " )

 15

在VBScript中使用类_microsoft


 16

在VBScript中使用类_microsoft

' Define the SQL query

 17

在VBScript中使用类_microsoft

strComplexSQLQuery  =   " SELECT C.Name, S.Name FROM Customers C,  "   &  _

 18

在VBScript中使用类_microsoft

        

" Salespeople S, Sales Sl WHERE Sl.CustomerID=C.ID AND  "   &  _

 19

在VBScript中使用类_microsoft

         

" Sl.SalespersonID=S.ID AND Sl.ID= "   &  strIDOfThisSale  &   " ;"

 20

在VBScript中使用类_microsoft


 21

在VBScript中使用类_microsoft

' Open the recordset

 22

在VBScript中使用类_microsoft

objRS.Open strComplexSQLQuery, objConn, adOpenForwardOnly, _

 23

在VBScript中使用类_microsoft

               adLockReadOnly, adCmdText

 24

在VBScript中使用类_microsoft


 25

在VBScript中使用类_microsoft

' Take the customer and sales person names from the recordset

 26

在VBScript中使用类_microsoft

strCustomerName  =  objRS( 0 )

 27

在VBScript中使用类_microsoft

strSalesPersonName 

=  objRS( 1 )

 28

在VBScript中使用类_microsoft


 29

在VBScript中使用类_microsoft

' Tidy up the objects

 30

在VBScript中使用类_microsoft

objRS.Close

 31

在VBScript中使用类_microsoft

objConn.Close

 32

在VBScript中使用类_microsoft

Set  objRS  =   Nothing

 33

在VBScript中使用类_microsoft

Set  objConn  =   Nothing

 34

在VBScript中使用类_microsoft


 35

在VBScript中使用类_microsoft

' Output the data

 36

在VBScript中使用类_microsoft

Response.Write  " This sale was made by  "   &  strSalesPersonName  &  _

 37

在VBScript中使用类_microsoft

               

"  to  "   &  strCustomerName

 38

在VBScript中使用类_microsoft


 39

在VBScript中使用类_microsoft


 40

在VBScript中使用类_microsoft

可以使用“对象”来替代:

 41

在VBScript中使用类_microsoft


 42

在VBScript中使用类_microsoft

' Create the "Sale" object

 43

在VBScript中使用类_microsoft

Set  objSale  =   New  Sale

 44

在VBScript中使用类_microsoft


 45

在VBScript中使用类_microsoft

' Lookup the correct sale

 46

在VBScript中使用类_microsoft

objSale.ID  =  strIDOfThisSale

 47

在VBScript中使用类_microsoft


 48

在VBScript中使用类_microsoft

' Output the data

 49

在VBScript中使用类_microsoft

Response.Write  " This sale was made by  "   &  objSale.SalesPersonName  &  _

 50

在VBScript中使用类_microsoft

               

"  to  "   &  objSale.CustomerName

 51

在VBScript中使用类_microsoft


 52

在VBScript中使用类_microsoft

' Tidy up the objects

 53

在VBScript中使用类_microsoft

objSale.Close

 54

在VBScript中使用类_microsoft

Set  objSale  =   Nothing

 55

在VBScript中使用类_microsoft

如果你使用“Sale”对象做比打印更多的事,可以让你省去很多的打字时间。

 56

在VBScript中使用类_microsoft


 57

在VBScript中使用类_microsoft

计算中,对象包括“属性”和“方法”。属性主要是储存在对象中的一个变量,其用法与变量相同。唯一的区别在于参数赋值为:strMyVar 

=   " This is a string variant " , 而对象属性为 objObject. Property = " This is a string variant " 。这点非常简单而有用处。方法可以理解为植入对象中的函数与过程,可以使用strMyVar  =  objObject.MethodName(strMyVar)来代替strMyVar  = FunctionName(strMyVar)。写法不同,但功能相同。属性的一个例子是对象Response中的ExpireAbsolute,Response.ExpiresAbsolute  =   CDate ( " 1 September 1999 " )。方法的一个例子是对象Response中的Write方法,Response.Write  " Hello world! " 。

 58

在VBScript中使用类_microsoft

    VBScript的一个新特性就是其可以创建新的对象而不需要求诸于花销时间都极大的编译器。我将向读者展示如何创建对象的类,并希望提供一个良好的开端。

 59

在VBScript中使用类_microsoft


 60

在VBScript中使用类_microsoft

    在VBScript中使用类(二)

 61

在VBScript中使用类_microsoft

     创建对象

 62

在VBScript中使用类_microsoft

在VBScript中创建对象类型(类)时,你首先要知道,这真的很容易!我在一个下午自学,只是阅读了Microsof VB Script 的参考书,但必须承认,这书不是最容易阅读的文档。

 63

在VBScript中使用类_microsoft

    初学者需要安装VBScript 

5 .0引擎,可以在Microsoft ' s Scripting Site下载。

 64

在VBScript中使用类_microsoft

我们来看代码。类的定义与函数和子过程非常类似。起始行为Class  < MyClassName > ,结尾是End Class,所有的对象定义写在中间部门。现在我们可以用所学的来建立第一个类,不实现任何功能的类。

 65

在VBScript中使用类_microsoft

Class 4GuysTestObject

 66

在VBScript中使用类_microsoft

' 你的ASP代码

 67

在VBScript中使用类_microsoft

End  Class

 68

在VBScript中使用类_microsoft

     这看上去不是那么回事,但当你写入下面的代码后,你将创建一个对象的实例:

 69

在VBScript中使用类_microsoft

Dim  objTestObject

 70

在VBScript中使用类_microsoft

Set  objTestObject  =   New  4GuysTestObject

 71

在VBScript中使用类_microsoft

Set  objTestObject  =   Nothing

 72

在VBScript中使用类_microsoft

    显然,我们现在还不能用对象做任何事,现在我将解释如何在对象中定义属性和方法。

 73

在VBScript中使用类_microsoft

   使用对象可以做的最基础的,是建立一组数据。例如,假如要将时间、日期及视频程序标题建立在一起,你可以创建一个包含属性“StartTime”, “ProgramDate”和“ProgramTitle”的对象。代码如下:

 74

在VBScript中使用类_microsoft


 75

在VBScript中使用类_microsoft

Class TVProgram

 76

在VBScript中使用类_microsoft


 77

在VBScript中使用类_microsoft

Public  StartTime

 78

在VBScript中使用类_microsoft

Public  ProgramDate

 79

在VBScript中使用类_microsoft

Public  ProgramTitle

 80

在VBScript中使用类_microsoft


 81

在VBScript中使用类_microsoft

End  Class

 82

在VBScript中使用类_microsoft


 83

在VBScript中使用类_microsoft

Dim  objTVShow

 84

在VBScript中使用类_microsoft

Set  objTVShow  =   New  TVProgram

 85

在VBScript中使用类_microsoft


 86

在VBScript中使用类_microsoft

objTVShow.StartTime 

=   CDate ( " 17:30 " )

 87

在VBScript中使用类_microsoft

objTVShow.ProgramDate 

=   DateSerial ( 1999 , 9 , 17 )

 88

在VBScript中使用类_microsoft

objTVShow.ProgramTitle 

=   " The Jerry Springer Show"

 89

在VBScript中使用类_microsoft


 90

在VBScript中使用类_microsoft

Response.Write objTVShow.ProgramTitle  &   "  is on at  "   &  _

 91

在VBScript中使用类_microsoft

objTVShow.StartTime 

&   "  on  "   &  objTVShow.ProgramDate

 92

在VBScript中使用类_microsoft


 93

在VBScript中使用类_microsoft

代码工作的方式是,我们定义StartTime,ProgramDate和ProgramTitle为类TVProgram的属性。这样,这些属性就像其他变量一样来处理,没有设置值则不会执行代码。属性名字前的Public字段有其真实含义,而且非常重要。如果你不特指一个方法或属性为public或private,系统默认值为public,但最好养成定义任何值的良好书写习惯(也方便你之后自己的阅读)。

 94

在VBScript中使用类_microsoft


 95

在VBScript中使用类_microsoft

    上面程序的结果大致如下(决定于你的本地服务器配置):

 96

在VBScript中使用类_microsoft


 97

在VBScript中使用类_microsoft

The Jerry Springer Show 

is   on  at  5 :30pm  on   17 / 09 / 99 .

 98

在VBScript中使用类_microsoft


 99

在VBScript中使用类_microsoft

    我在英国,所以日期现实如上。不论你跑什么工程,它的效果都不错,但只有你开始使用其他对象的功能,为你可能需要的所有信息和功能,创建一个完美的接口,以支持你所建对象包围的实体,你才会体会到对象的真正实力。

100

在VBScript中使用类_microsoft

    现在,如果你不喜欢上面例子显示日期的方法,而希望以同一种格式现实日期,也没有不要在引用每个ProgramDate属性时加FormatDateTime(),你只需要将此类代码植入属性本身。

101

在VBScript中使用类_microsoft


102

在VBScript中使用类_microsoft

    这样需要用另一种方法定义属性。同样,我们将使用ProgramDate为外部可见属性,但因为ProgramDate属性将成为一个函数而不是静态值,我们将实际日期保存在另一个属性中internal_ProgramDate。

103

在VBScript中使用类_microsoft


104

在VBScript中使用类_microsoft

Class TVProgram

105

在VBScript中使用类_microsoft


106

在VBScript中使用类_microsoft

Public  StartTime

107

在VBScript中使用类_microsoft

Public  internal_ProgramDate

108

在VBScript中使用类_microsoft


109

在VBScript中使用类_microsoft

Public   Property   Get  ProgramDate

110

在VBScript中使用类_microsoft

ProgramDate 

=   Day (internal_ProgramDate)  &  _

111

在VBScript中使用类_microsoft

"   "   &   MonthName ( Month (internal_ProgramDate))  &  _

112

在VBScript中使用类_microsoft

"   "   &   Year (internal_ProgramDate)

113

在VBScript中使用类_microsoft

End Property

114

在VBScript中使用类_microsoft


115

在VBScript中使用类_microsoft

               

Public  ProgramTitle

116

在VBScript中使用类_microsoft

        

End  Class

117

在VBScript中使用类_microsoft


118

在VBScript中使用类_microsoft

Dim  objTVShow

119

在VBScript中使用类_microsoft

Set  objTVShow  =   New  TVProgram

120

在VBScript中使用类_microsoft


121

在VBScript中使用类_microsoft

objTVShow.StartTime 

=   CDate ( " 17:30 " )

122

在VBScript中使用类_microsoft

objTVShow.internal_ProgramDate 

=   DateSerial ( 1999 , 9 , 17 )

123

在VBScript中使用类_microsoft

objTVShow.ProgramTitle 

=   " The Jerry Springer Show"

124

在VBScript中使用类_microsoft


125

在VBScript中使用类_microsoft

Response.Write objTVShow.ProgramTitle  &   "  is on at  "   &  _

126

在VBScript中使用类_microsoft

objTVShow.StartTime 

&   "  on  "   &  objTVShow.ProgramDate  &   " ."

127

在VBScript中使用类_microsoft


128

在VBScript中使用类_microsoft


129

在VBScript中使用类_microsoft

程序的结果如下:

130

在VBScript中使用类_microsoft


131

在VBScript中使用类_microsoft

The Jerry Springer Show 

is   on  at  5 :30pm  on   17  September  1999 .

132

在VBScript中使用类_microsoft


133

在VBScript中使用类_microsoft

   在VBScript中使用类(三)

134

在VBScript中使用类_microsoft


135

在VBScript中使用类_microsoft

我们来分析一下(

2 )中的程序:

136

在VBScript中使用类_microsoft


137

在VBScript中使用类_microsoft

Class TVProgram

138

在VBScript中使用类_microsoft


139

在VBScript中使用类_microsoft

               

Public  StartTime

140

在VBScript中使用类_microsoft


141

在VBScript中使用类_microsoft

               

Public  internal_ProgramDate

142

在VBScript中使用类_microsoft


143

在VBScript中使用类_microsoft

               

Public   Property   Get  ProgramDate

144

在VBScript中使用类_microsoft


145

在VBScript中使用类_microsoft

                       ProgramDate 

=   Day (internal_ProgramDate)  &  _

146

在VBScript中使用类_microsoft


147

在VBScript中使用类_microsoft

                               

"   "   &   MonthName ( Month (internal_ProgramDate))  &  _

148

在VBScript中使用类_microsoft


149

在VBScript中使用类_microsoft

                               

"   "   &   Year (internal_ProgramDate)

150

在VBScript中使用类_microsoft


151

在VBScript中使用类_microsoft

               

End Property

152

在VBScript中使用类_microsoft


153

在VBScript中使用类_microsoft

               

Public  ProgramTitle

154

在VBScript中使用类_microsoft


155

在VBScript中使用类_microsoft

        

End  Class

156

在VBScript中使用类_microsoft


157

在VBScript中使用类_microsoft

        

Dim  objTVShow

158

在VBScript中使用类_microsoft


159

在VBScript中使用类_microsoft

        

Set  objTVShow  =   New  TVProgram

160

在VBScript中使用类_microsoft


161

在VBScript中使用类_microsoft

        objTVShow.StartTime 

=   CDate ( " 17:30 " )

162

在VBScript中使用类_microsoft


163

在VBScript中使用类_microsoft

        objTVShow.internal_ProgramDate 

=   DateSerial ( 1999 , 9 , 17 )

164

在VBScript中使用类_microsoft


165

在VBScript中使用类_microsoft

        objTVShow.ProgramTitle 

=   " The Jerry Springer Show"

166

在VBScript中使用类_microsoft


167

在VBScript中使用类_microsoft

        Response.Write objTVShow.ProgramTitle  &   "  is on at  "   &  _

168

在VBScript中使用类_microsoft


169

在VBScript中使用类_microsoft

       objTVShow.StartTime 

&   "  on  "   &  objTVShow.ProgramDate  &   " ."

170

在VBScript中使用类_microsoft


171

在VBScript中使用类_microsoft

当调用对象的属性ProgramDate时,实际上执行了函数ProgramDate,即如上定义的函数,而很快你也将习惯这种在声明部分使用Public或Private关键字的方式。关键字“ Property ”,告知了编译器如同调用属性一样在外部调用函数。接着的“ Get ”,表明该函数是输出还是获得一个值。

172

在VBScript中使用类_microsoft


173

在VBScript中使用类_microsoft

Get的意思是“允许外部代码去‘获取’一个值”,与其类似的关键字还有“

Let ”和“ Set ”,但这两个比较复杂,因而我们以后再讨论。

174

在VBScript中使用类_microsoft


175

在VBScript中使用类_microsoft

接下去的代码看来有点难度的,给objectname.internal_ProgramDate赋值并通过objectname.ProgramDate来调用它。如果可以使用相同关键字同时为其赋值并获得它的值不是更好吗?当然,那也可以。

176

在VBScript中使用类_microsoft


177

在VBScript中使用类_microsoft

如果定义Get和Let属性的名称相同,可以将它们当作对象相同的属性,但这只限于它们定义了相同数量的成员。(以下代码看来不太相同,仅作为实例参考)

178

在VBScript中使用类_microsoft


179

在VBScript中使用类_microsoft

Class TVProgram

180

在VBScript中使用类_microsoft


181

在VBScript中使用类_microsoft

               

Public  StartTime

182

在VBScript中使用类_microsoft


183

在VBScript中使用类_microsoft

               

Public  internal_ProgramDate

184

在VBScript中使用类_microsoft


185

在VBScript中使用类_microsoft

               

Public   Property   Get  ProgramDate

186

在VBScript中使用类_microsoft


187

在VBScript中使用类_microsoft

                       ProgramDate 

=   Day (internal_ProgramDate)  &   "   "  _

188

在VBScript中使用类_microsoft


189

在VBScript中使用类_microsoft

                               

&   MonthName ( Month (internal_ProgramDate))  &  _

190

在VBScript中使用类_microsoft


191

在VBScript中使用类_microsoft

                               

"   "   &   Year (internal_ProgramDate)

192

在VBScript中使用类_microsoft


193

在VBScript中使用类_microsoft

               

End Property

194

在VBScript中使用类_microsoft


195

在VBScript中使用类_microsoft

               

Public   Property   Let  ProgramDate(ByVal varDateIn)

196

在VBScript中使用类_microsoft


197

在VBScript中使用类_microsoft

                       internal_ProgramDate 

=   CDate (varDateIn)

198

在VBScript中使用类_microsoft


199

在VBScript中使用类_microsoft

               

End Property

200

在VBScript中使用类_microsoft


201

在VBScript中使用类_microsoft

               

Public  ProgramTitle

202

在VBScript中使用类_microsoft


203

在VBScript中使用类_microsoft

        

End  Class

204

在VBScript中使用类_microsoft


205

在VBScript中使用类_microsoft

        

Dim  objTVShow

206

在VBScript中使用类_microsoft


207

在VBScript中使用类_microsoft

        

Set  objTVShow  =   New  TVProgram

208

在VBScript中使用类_microsoft


209

在VBScript中使用类_microsoft

        objTVShow.StartTime 

=   CDate ( " 17:30 " )

210

在VBScript中使用类_microsoft


211

在VBScript中使用类_microsoft

        objTVShow.ProgramDate 

=   " 17 Sept 99"

212

在VBScript中使用类_microsoft


213

在VBScript中使用类_microsoft

        objTVShow.ProgramTitle  =   " The Jerry Springer Show"

214

在VBScript中使用类_microsoft


215

在VBScript中使用类_microsoft

    Response.Write objTVShow.ProgramTitle  &   "  is on at  "   &  _

216

在VBScript中使用类_microsoft


217

在VBScript中使用类_microsoft

       objTVShow.StartTime 

&   "  on  "   &  objTVShow.ProgramDate  &   " ."

218

在VBScript中使用类_microsoft


219

在VBScript中使用类_microsoft

以上代码中Let的声明部分看来似乎是一个多余的元素,当我第一次看到时研究了很长时间。每次我使用“ 0 ”作为变量用在每个属性上,我总是得到这个错误信息,“元素数量必须相等”。“它们确实相等!”抓狂之后,我回过头去看程序才觉得自己的愚蠢!:)

220

在VBScript中使用类_microsoft


221

在VBScript中使用类_microsoft

原因是,当你试图为ProgramDate赋值时,你会使用这样一行程序:

222

在VBScript中使用类_microsoft


223

在VBScript中使用类_microsoft

objTVShow.ProgramDate 

=  dtmMyDate

224

在VBScript中使用类_microsoft


225

在VBScript中使用类_microsoft

为了方便,等号右边的值(这里指dtmMyDate)作为了一个程元赋给了函数。因此编译器可能会认为在Get ProgramDate行有0程元,而Let ProgramDate却多一个!分配的值总是被略过而作为属性的最后一个程元,所以即使你使用其他程元,所赋的值总是作为最后一个程元。

226

在VBScript中使用类_microsoft


227

在VBScript中使用类_microsoft

现在看程序。无论通过ProgramDate设置日期为文本形式,还是用internal_ProgramDate译成日期变量,程序都没有问题。但能不能只使用一个入口呢?

228

在VBScript中使用类_microsoft


229

在VBScript中使用类_microsoft

如果internal_ProgramDate只能在内部有效,而使用Let ProgramDate检查传输的数据类型,我们就可以作出选择。例如:

230

在VBScript中使用类_microsoft


231

在VBScript中使用类_microsoft

Class TVProgram

232

在VBScript中使用类_microsoft


233

在VBScript中使用类_microsoft

               

Public  StartTime

234

在VBScript中使用类_microsoft


235

在VBScript中使用类_microsoft

               

Private  internal_ProgramDate

236

在VBScript中使用类_microsoft


237

在VBScript中使用类_microsoft

               

Public   Property   Get  ProgramDate

238

在VBScript中使用类_microsoft


239

在VBScript中使用类_microsoft

                       ProgramDate 

=   Day (internal_ProgramDate)  &   "   "   &  _

240

在VBScript中使用类_microsoft


241

在VBScript中使用类_microsoft

                               

MonthName ( Month (internal_ProgramDate))  &  _

242

在VBScript中使用类_microsoft


243

在VBScript中使用类_microsoft

                               

"   "   &   Year (internal_ProgramDate)

244

在VBScript中使用类_microsoft


245

在VBScript中使用类_microsoft

               

End Property

246

在VBScript中使用类_microsoft


247

在VBScript中使用类_microsoft

               

Public   Property   Let  ProgramDate(ByVal varDateIn)

248

在VBScript中使用类_microsoft


249

在VBScript中使用类_microsoft

                       

If   IsDate (varDateIn)  Then

250

在VBScript中使用类_microsoft


251

在VBScript中使用类_microsoft

                               internal_ProgramDate 

=  varDateIn

252

在VBScript中使用类_microsoft


253

在VBScript中使用类_microsoft

                       

Else

254

在VBScript中使用类_microsoft


255

在VBScript中使用类_microsoft

                               

' Place some error handling code in here.

256

在VBScript中使用类_microsoft


257

在VBScript中使用类_microsoft

                       

End   If

258

在VBScript中使用类_microsoft


259

在VBScript中使用类_microsoft

               

End Property

260

在VBScript中使用类_microsoft


261

在VBScript中使用类_microsoft

               

Public  ProgramTitle

262

在VBScript中使用类_microsoft


263

在VBScript中使用类_microsoft

        

End  Class

264

在VBScript中使用类_microsoft


265

在VBScript中使用类_microsoft

并同样声明StartTime属性:

266

在VBScript中使用类_microsoft


267

在VBScript中使用类_microsoft

Class TVProgram

268

在VBScript中使用类_microsoft


269

在VBScript中使用类_microsoft

               

Private  internal_StartTime

270

在VBScript中使用类_microsoft


271

在VBScript中使用类_microsoft

               

Public   Property   Get  StartTime

272

在VBScript中使用类_microsoft


273

在VBScript中使用类_microsoft

                       StartTime 

=   Hour (internal_StartTime)  &   " : "  _

274

在VBScript中使用类_microsoft


275

在VBScript中使用类_microsoft

                               

&   Minute (internal_StartTime)

276

在VBScript中使用类_microsoft


277

在VBScript中使用类_microsoft

               

End Property

278

在VBScript中使用类_microsoft


279

在VBScript中使用类_microsoft

               

Public   Property   Let  StartTime(ByVal varTimeIn)

280

在VBScript中使用类_microsoft


281

在VBScript中使用类_microsoft

                       

If   IsDate (varTimeIn)  Then

282

在VBScript中使用类_microsoft


283

在VBScript中使用类_microsoft

                               internal_StartTime 

=  varTimeIn

284

在VBScript中使用类_microsoft


285

在VBScript中使用类_microsoft

                       

End   If

286

在VBScript中使用类_microsoft


287

在VBScript中使用类_microsoft

               

End Property

288

在VBScript中使用类_microsoft


289

在VBScript中使用类_microsoft

               

Private  internal_ProgramDate

290

在VBScript中使用类_microsoft


291

在VBScript中使用类_microsoft

               

Public   Property   Get  ProgramDate

292

在VBScript中使用类_microsoft


293

在VBScript中使用类_microsoft

                       ProgramDate 

=   Day (internal_ProgramDate)  &   "   "  _

294

在VBScript中使用类_microsoft


295

在VBScript中使用类_microsoft

                               

&   MonthName ( Month (internal_ProgramDate))  &  _

296

在VBScript中使用类_microsoft


297

在VBScript中使用类_microsoft

                               

"   "   &   Year (internal_ProgramDate)

298

在VBScript中使用类_microsoft


299

在VBScript中使用类_microsoft

               

End Property

300

在VBScript中使用类_microsoft


301

在VBScript中使用类_microsoft

               

Public   Property   Let  ProgramDate(ByVal varDateIn)

302

在VBScript中使用类_microsoft


303

在VBScript中使用类_microsoft

                       

If   IsDate (varDateIn)  Then

304

在VBScript中使用类_microsoft


305

在VBScript中使用类_microsoft

                               internal_ProgramDate 

=  varDateIn

306

在VBScript中使用类_microsoft


307

在VBScript中使用类_microsoft

                       

End   If

308

在VBScript中使用类_microsoft


309

在VBScript中使用类_microsoft

               

End Property

310

在VBScript中使用类_microsoft


311

在VBScript中使用类_microsoft

               

Public  ProgramTitle

312

在VBScript中使用类_microsoft


313

在VBScript中使用类_microsoft

        

End  Class

314

在VBScript中使用类_microsoft

        

在VBScript中使用类_asp_315


315

在VBScript中使用类_microsoft

    现在的代码离我们想要的还是有些不太实用,我们将在其他页使用类TVProgram,因此最好将其独立定义,以便所有也面都可以调用。我们将在第四部分讨论这点。

316

在VBScript中使用类_microsoft

      在VBScript中使用类(四)

317

在VBScript中使用类_microsoft


318

在VBScript中使用类_microsoft

现在的代码离我们想要的还是有些不太实用,我们将在其他页使用类TVProgram,因此最好将其独立定义,以便所有也面都可以调用。创建一个ASP页面,并命名为TVProgramClass.asp,我们在其中定义类TVProgram。

319

在VBScript中使用类_microsoft

-- TVProgramClass.asp --

320

在VBScript中使用类_microsoft

< %

321

在VBScript中使用类_microsoft

        Class TVProgram

322

在VBScript中使用类_microsoft

               

Private  internal_StartTime

323

在VBScript中使用类_microsoft

               

Public   Property   Get  StartTime

324

在VBScript中使用类_microsoft


325

在VBScript中使用类_microsoft

                       StartTime 

=   Hour (internal_StartTime)  &  _

326

在VBScript中使用类_microsoft


327

在VBScript中使用类_microsoft

                               

" : "   &   Minute (internal_StartTime)

328

在VBScript中使用类_microsoft


329

在VBScript中使用类_microsoft

               

End Property

330

在VBScript中使用类_microsoft

               

Public   Property   Let  StartTime(ByVal varTimeIn)

331

在VBScript中使用类_microsoft


332

在VBScript中使用类_microsoft

                       

If   IsDate (varTimeIn)  Then

333

在VBScript中使用类_microsoft


334

在VBScript中使用类_microsoft

                               internal_StartTime 

=  varTimeIn

335

在VBScript中使用类_microsoft


336

在VBScript中使用类_microsoft

                       

End   If

337

在VBScript中使用类_microsoft


338

在VBScript中使用类_microsoft

               

End Property

339

在VBScript中使用类_microsoft

               

Private  internal_ProgramDate

340

在VBScript中使用类_microsoft

               

Public   Property   Get  ProgramDate

341

在VBScript中使用类_microsoft

                       ProgramDate 

=   Day (internal_ProgramDate)  &  _

342

在VBScript中使用类_microsoft

                              

"   "   &   MonthName ( Month (internal_ProgramDate))  &  _

343

在VBScript中使用类_microsoft


344

在VBScript中使用类_microsoft

                               

"   "   &   Year (internal_ProgramDate)

345

在VBScript中使用类_microsoft


346

在VBScript中使用类_microsoft

               

End Property

347

在VBScript中使用类_microsoft


348

在VBScript中使用类_microsoft

               

Public   Property   Let  ProgramDate(ByVal varDateIn)

349

在VBScript中使用类_microsoft

                       

If   IsDate (varDateIn)  Then

350

在VBScript中使用类_microsoft

                               internal_ProgramDate 

=  varDateIn

351

在VBScript中使用类_microsoft

                       

End   If

352

在VBScript中使用类_microsoft

               

End Property

353

在VBScript中使用类_microsoft


354

在VBScript中使用类_microsoft

               

Public  ProgramTitle

355

在VBScript中使用类_microsoft


356

在VBScript中使用类_microsoft

        

End  Class

357

在VBScript中使用类_microsoft

%

>

358

在VBScript中使用类_microsoft

这样就可以在任何ASP中调用我们定义的类了,语法如下:

359

在VBScript中使用类_microsoft

< ! --  #include virtual = " TVProgramClass.asp "   -->

360

在VBScript中使用类_microsoft

< %

361

在VBScript中使用类_microsoft

        

Dim  objTVShow

362

在VBScript中使用类_microsoft

        

Set  objTVShow  =   New  TVProgram

363

在VBScript中使用类_microsoft


364

在VBScript中使用类_microsoft

        objTVShow.StartTime 

=   CDate ( " 17:30 " )

365

在VBScript中使用类_microsoft

        objTVShow.ProgramDate 

=   DateSerial ( 1999 , 9 , 17 )

366

在VBScript中使用类_microsoft

        objTVShow.ProgramTitle 

=   " The Jerry Springer Show"

367

在VBScript中使用类_microsoft


368

在VBScript中使用类_microsoft

% >  

369

在VBScript中使用类_microsoft

< % =  objTVShow.ProgramTitle % >   is   on  at  < % =  objTVShow.StartTime % >   on   < % =  objTVShow.ProgramDate % > .

370

在VBScript中使用类_microsoft

这里有一个建议。如果你重命名你的包含文件.asp,并保证所有重要代码都在

< CODE >< % 

在VBScript中使用类_asp_315

 %

><  CODE > 中,那么就算有人猜到了你包含文件的文件名,也没办法看见里面的内容!

371

在VBScript中使用类_microsoft


372

在VBScript中使用类_microsoft

评论:

373

在VBScript中使用类_microsoft

    VBScript类在封装的层面上,还是有不少好处的,增加了代码的可读性与可维护性以及清晰度,但是,没有继承和重载等特性,并不是真正意义上的OOP。没有集合,但是据说可以用Scripting.Dictionary,据说更好用、更快。不过,感觉总是鸡类(肋)。