屬性操作很像公共變量,但屬性還有更多的控制。
常用屬性通常包括"Get(獲取)"和"Let(設定)"兩種。這兩項操作能規定一個主要屬性,就像下面的程式碼片段:
上述程式碼的工作方式極像Age變數的操作。當像下面語句操作變數時,
就好比運作Let屬性,將4賦給vNewValue。當像下面語句操作變數時,
是取得屬性,就好比運行Get屬性,並將對應的值由intAge傳回。因此,我們可以這樣認為:
所謂Get屬性,就是運行後要取得某個值;
所謂Let屬性,就是運行後讓某個屬性等於某個值;
但至此為止,我們僅說明屬性運作方式與標準變數極為相似,還沒有來得及對屬性進行更多的控制。所以,下面就來討論。
開啟上一節的工程,對CDog類別進行以下修改:
從CDog類別中去掉Age變數;
新增下列程式碼:
與前面的程式碼相比,這裡只是對Let屬性程式碼作稍加修改。以下對其作小小的測試,假想用戶試圖想使:
也就是運行Let屬性,使vNewValue等於30。在程式碼中,也檢測vNewValue是否小於或等於50。顯然,30是符合要求的,因此實例中的intAge值等於30。但如果超過50,則什麼事也不會發生,屬性退出且沒有任何賦值。當然,我們也可以對此給予對應的錯誤代碼或顯示提示對話框。
切換到Form1後面的程式碼視窗;
在設定Age屬性程式碼處的第一行語句中點選滑鼠,並按F9;
MyDog.Age=4
在取得Age屬性程式碼處的第一行語句中按一下滑鼠,並按F9;
MsgBoxMyDog.Name&"is"&MyDog.Age&"yearsold"
現在讓我們測試一下:
按F5運行程序;
點選Command按鈕;
程式碼應該中斷在按F9新增的斷點的程式碼行上。
當程式碼中斷後,按F8單步運行並觀察結果;
現在明白它們是怎麼運作的嗎?注意Age屬性的"get"和"let"是怎麼運作的?
在下一節中,我們不僅要討論使用更多屬性的方式,而且還討論如何隨意創建它們。
->