打印本文 打印本文 关闭窗口 关闭窗口
在VBScript中使用类(三)
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2631  更新时间:2009/4/23 18:59:28  文章录入:mintao  责任编辑:mintao
               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

上一页  [1] [2] [3] [4]  下一页

打印本文 打印本文 关闭窗口 关闭窗口