在VBScript中使用類(三) (轉)
我們來分析一下(2)中的:
Class TVProgram:namespace prefix = o ns = "urn:schemas--com::office" />
Public StartTime
Public internal_Prograte
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("
objTVShow.internal_ProgramDate = DateSerial(1999,9,17)
objTVShow.ProgramTitle = "The Jerry er Show"
Response.Write objTVShow.ProgramTitle & " is on at " & _
objTVShow.StartTime & " on " & objTVShow.ProgramDate & "."
當的屬性ProgramDate時,實際上了ProgramDate,即如上定義的函式,而很快你也將習慣這種在宣告部分使用Public或Private關鍵字的方式。關鍵字“Property”,告知了如同呼叫屬性一樣在外部呼叫函式。接著的“Get”,表明該函式是輸出還是獲得一個值。
Get的意思是“允許外部程式碼去‘獲取’一個值”,與其類似的關鍵字還有“Let”和“Set”,但這兩個比較複雜,因而我們以後再討論。
接下去的程式碼看來有點難度的,給name.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("
objTVShow.ProgramDate = "
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,因此最好將其獨立定義,以便所有也面都可以呼叫。我們將在第四部分討論這點。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-985668/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 在VBScript中使用類(四) (轉)
- ASP中令人震撼的Debug類(VBScript) (轉)
- ASP中一個字串處理類(VBScript) (轉)字串
- 在客戶端用JAVASCRIPT或VBSCRIPT生成WORD文件 (轉)客戶端JavaScript
- 在SDK程式中使用MFC中的輔助類 (轉)
- VBScript 錯誤資訊一覽 (轉)
- VBScript函式補習課 (轉)函式
- VBScript中引用ASP的字串變數字串變數
- 在ASP中使用簡單Java類 (轉)Java
- Mybatis在Spring中的使用(三)MyBatisSpring
- 在Laravel中使用自己的類庫三種方式Laravel
- 在Visual Basic 中使用C++ 類 (轉)C++
- motorola手機中在主類中響應其它類中的按鈕訊息 (轉)
- 在應用程式中將OJB作為一個儲存層使用(三) (轉)
- 在VC++中建立自定義資料庫類 (轉)C++資料庫
- 利用三維旋轉矩陣在空間中旋轉平面矩陣
- Internet Explorer漏洞分析(三)[上]——VBScript Scripting Engine初探
- VBScript Scripting Engine初探
- 在Oracle中怎樣才能使用索引(轉)Oracle索引
- 在Dreamweaver中靈活使用網頁表格(轉)網頁
- Attribute在.NET程式設計中的應用(三) (轉)程式設計
- 在VC中自建操作BMP點陣圖檔案的類 (轉)
- shell vbscript xml程式設計XML程式設計
- Android開發教程 - 使用Data Binding(三)在Activity中的使用Android
- 怎樣在C++Builder中建立使用DLL (轉)UI
- 在ASP中也能使用MYSQL資料庫(轉)MySql資料庫
- java中Scanner類使用Java
- C++中類及類的定義 (轉)C++
- VBScript編碼模板(2003-11-14修改版) (轉)
- CVS在MAC OSX中的安裝和使用 (轉)Mac
- 在BCB中輕鬆使用ActiveX控制元件 (轉)控制元件
- Delphi中的類和物件 (轉)物件
- 在學習中運用類比
- 使用PHP4中的 IntegratedTemplate類實現BLOCK功能 (轉)PHPBloC
- 在Vue專案中使用Echarts(三): Echarts中的其他常用圖VueEcharts
- Java中的Reference類使用Java
- 在C語言中引入類的概念(轉)C語言
- nginx在windows下的使用三NginxWindows