- 热门文章:
- · 错误80004005信息处理又一方法
- · 在VBScript中使用类(二)
- · 在VBScript中使用类(一)
- · 常用Response对象的使用祥解
- · session和cookie的最深刻理解
- · 利用客户端js实现汉字简体繁体转换
- · asp程序错误详细说明例表
- · 简单WEB开发规范
- · asp程序错误详细说明例表
- · HTA的简单应用
- · 请教一个问题!
- · 动态网页制作规范
上一篇:在VBScript中使用类(四) >>
在VBScript中使用类(三)
Class TVProgram
Public StartTime
Public internal_ProgramDate
Public Property Get ProgramDate
ProgramDate = Day(internal_ProgramDate) & _
" " & MonthName(Month(internal_ProgramDate)) & _
" " & Year(internal_ProgramDate)
End Property
Public ProgramTitle
End Class
Dim objTVShow
Set objTVShow = New TVProgram
objTVShow.StartTime = CDate("17:30")
objTVShow.internal_ProgramDate = DateSerial(1999,9,17)
objTVShow.ProgramTitle = "The Jerry Springer Show"
Response.Write objTVShow.ProgramTitle & " is on at " & _
objTVShow.StartTime & " on " & objTVShow.ProgramDate & "."
当调用对象的属性ProgramDate时,实际上执行了函数ProgramDate,即如上定义的函数,而很快你也将习惯这种在声明部分使用Public或Private关键字的方式。关键字“Property”,告知了编译器如同调用属性一样在外部调用函数。接着的“Get”,表明该函数是输出还是获得一个值。
Get的意思是“允许外部代码去‘获取’一个值”,与其类似的关键字还有“Let”和“Set”,但这两个比较复杂,因而我们以后再讨论。
接下去的代码看来有点难度的,给objectname.internal_ProgramDate赋值并通过objectname.ProgramDate来调用它。如果可以使用相同关键字同时为其赋值并获得它的值不是更好吗?当然,那也可以。
如果定义Get和Let属性的名称相同,可以将它们当作对象相同的属性,但这只限于它们定义了相同数量的成员。(以下代码看来不太相同,仅作为实例参考)
Class TVProgram
Public StartTime
Public internal_ProgramDate
Public Property Get ProgramDate
ProgramDate = Day(internal_ProgramDate) & " " _
& MonthName(Month(internal_ProgramDate)) & _
" " & Year(internal_ProgramDate)
End Property
Public Property Let ProgramDate(ByVal varDateIn)
internal_ProgramDate = CDate(varDateIn)
End Property
Public ProgramTitle
End Class
Dim objTVShow
Set objTVShow = New TVProgram
objTVShow.StartTime = CDate("17:30")
objTVShow.ProgramDate = "17 Sept 99"
objTVShow.ProgramTitle = "The Jerry Springer Show"
Response.Write objTVShow.ProgramTitle & " is on at " & _
objTVShow.StartTime & " on " & objTVShow.ProgramDate & "."
以上代码中Let的声明部分看来似乎是一个多余的元素,当我第一次看到时研究了很长时间。每次我使用“0”作为变量用在每个属性上,我总是得到这个错误信息,“元素数量必须相等”。“它们确实相等!”抓狂之后,我回过头去看程序才觉得自己的愚蠢!:)
原因是,当你试图为ProgramDate赋值时,你会使用这样一行程序:
objTVShow.ProgramDate = dtmMyDate
为了方便,等号右边的值(这里指dtmMyDate)作为了一个程元赋给了函数。因此编译器可能会认为在Get ProgramDate行有0程元,而Let ProgramDate却多一个!分配的值总是被略过而作为属性的最后一个程元,所以即使你使用其他程元,所赋的值总是作为最后一个程元。
现在看程序。无论通过ProgramDate设置日期为文本形式,还是用internal_ProgramDate译成日期变量,程序都没有问题。但能不能只使用一个入口呢?
如果internal_ProgramDate只能在内部有效,而使用Let ProgramDate检查传输的数据类型,我们就可以作出选择。例如:
Class TVProgram
Public StartTime
Private internal_ProgramDate
Public Property Get ProgramDate
ProgramDate = Day(internal_ProgramDate) & " " & _
MonthName(Month(internal_ProgramDate)) & _
" " & Year(internal_ProgramDate)
End Property
Public Property Let ProgramDate(ByVal varDateIn)
If IsDate(varDateIn) Then
internal_ProgramDate = varDateIn
Else
‘’Place some error handling code in here.
End If
End Property
Public ProgramTitle
End Class
并同样声明StartTime属性:
Class TVProgram
Private internal_StartTime
Public Property Get StartTime
StartTime = Hour(internal_StartTime) & ":" _
& Minute(internal_StartTime)
End Property
Public Property Let StartTime(ByVal varTimeIn)
If IsDate(varTimeIn) Then
internal_StartTime = varTimeIn
End If
End Property
Private internal_ProgramDate
Public Property Get ProgramDate
ProgramDate = Day(internal_ProgramDate) & " " _
& MonthName(Month(internal_ProgramDate)) & _
" " & Year(internal_ProgramDate)
End Property
Public Property Let ProgramDate(ByVal varDateIn)
If IsDate(varDateIn) Then
internal_ProgramDate = varDateIn
End If
End Property
Public ProgramTitle
End Class
...
现在的代码离我们想要的还是有些不太实用,我们将在其他页使用类TVProgram,因此最好将其独立定义,以便所有也面都可以调用。我们将在第四部分讨论这点。
下一篇:错误80004005信息处理又一方法 >>
相关文章:
- · 关于学习c++和编程的50个观点(学什么都适用)
- · 常见的80004005错误及其解决方法
- · ASP设计常见问题及解答精要(4)(完)
- · ASP设计常见问题及解答精要(3)
- · ASP设计常见问题及解答精要(2)
- · ASP设计常见问题及解答精要(1)
- · 如何才能成为一名真正的Web程序员
- · 两星级ASP版社区之星编写的ASP常见问题解答
- · 大中型网络公司的一条发展之路
- · ASP错误代码说明
- · jscript错误代码及相应解释大全
- · vbscript错误代码及对应解释大全
- · VBScript 错误信息一览
- · ASP错误处理
- · 使用ASP开发web站点
- · Web设计里的软件工程思想
- · 关于Adodb.Stream 的使用说明
- · 处理ASP请求的内部讨论
- · ASP 开发准则
- · WebClass入门(1)
- · 第一章 容错机制 <<高质量动态网页技术编程指南(草稿)>>
- · 与其他语言的比较——了解ASP、PHP和JSP
- · asp简介和五大内置对象
- · 全面解析Server对象
- · ASP的技术特点与使用方法
- · 走近asp.net
- · 从ASP迁移至ASP+--最初的考虑(二)
- · 从ASP迁移至ASP+--最初的考虑(一)
- · ASP+与ASP有什么不同
- · ASP基础讲座(下)
- · ASP基础讲座(上)
- · 解决IIS5 HTTP500内部错误
- · VBSctipt 5.0中的新特性
- · ASP 3.0高级编程(四十六)
- · ASP 3.0高级编程(四十五)
- · ASP 3.0高级编程(四十四)
- · ASP 3.0高级编程(四十三)
- · ASP 3.0高级编程(四十二)
