国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

在VBScript中使用類(三)

2024-07-21 02:15:29
字體:
來源:轉載
供稿:網友
我們來分析一下(2)中的程序:

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”作為變量用在每個屬性上,我總是得到這個錯誤信息,“元素數量必須相等”?!八鼈兇_實相等!”抓狂之后,我回過頭去看程序才覺得自己的愚蠢?。海?br>
原因是,當你試圖為programdate賦值時,你會使用這樣一行程序:

objtvshow.programdate = dtmmydate

為了方便,等號右邊的值(這里指dtmmydate)作為了一個程元賦給了函數。因此編譯器可能會認為在get programdate行有0程元,而let programdate卻多一個!分配的值總是被略過而作為屬性的最后一個程元,所以即使你使用其他程元,所賦的值總是作為最后一個程元。

現在看程序。無論通過programdate設置日期為文本形式,還是用internal_programdate譯成日期變量,程序都沒有問題。但能不能只使用一個入口呢?

如果internal_programdate只能在內部有效,而使用let programdate檢查傳輸的數據類型,我們就可以作出選擇。例如:

class tvprogram

public starttime



private internal_programdate



  • 本文來源于網頁設計愛好者web開發社區http://www.html.org.cn收集整理,歡迎訪問。
  • |||
    發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 象山县| 上栗县| 阿荣旗| 涟水县| 龙游县| 封丘县| 大石桥市| 桃江县| 沧州市| 阿拉善左旗| 商都县| 苏尼特左旗| 淮南市| 内丘县| 唐海县| 安阳县| 揭东县| 大同县| 安远县| 武功县| 岗巴县| 榆社县| 河东区| 城固县| 邛崃市| 安陆市| 云梦县| 建水县| 英超| 河南省| 东阿县| 奇台县| 万荣县| 安新县| 黄山市| 承德县| 高邮市| 昭觉县| 界首市| 定西市| 连江县|