VisualBasicCOM基礎(chǔ)之更多屬性

字號:

有時候,為了更好地處理類往往需更多的屬性。例如,假如你有四種不同的客戶群:集團、較大、較小和新的客戶類型,或者一個用于搜索的類中有三種不同的搜索方式:軟盤、硬盤和網(wǎng)絡(luò)。那么,能不能從選項列表中選擇一個,而不是用不能理解的數(shù)字或文本來設(shè)置相關(guān)屬性?
     我想,答案是肯定的。因為這種處理就稱為"枚舉"。
     打開上一節(jié)的工程,讓我們添加一些代碼。
     在CDog類中添加下列代碼:
    Public Enum CoatType
     BigAndShaggy = 1
     ShortCrewCut = 2
     PoodleStyleAfro = 3
     Unknown = 4
     end Enum
     關(guān)鍵詞"Enum"就是用來定義枚舉的,換句話說,它是可能選項的列表。各選項都有相應的數(shù)字,也就是說BigAndShaggy表示1,ShortCrewCut等于2,等等。
     需要注意的是,當將枚舉項相關(guān)信息添加在數(shù)據(jù)庫中時,其相應的數(shù)值是非常有用的。由于"BigAndShaggy"實際代表的是數(shù)值1,所以可以直接將其插入到數(shù)據(jù)庫的數(shù)值字段中。這就意味著,可以方便使用字符串來維護數(shù)據(jù)庫。
     所以,我們來創(chuàng)建一個Dog的Coat類型列表,并另外定義一個屬性,將這些類型添加在CDog類中。
     在類中聲明下列變量:
     Private udtCoat As CoatType
     這個定義的私有變量用來保存即將添加的Coat類型屬性,注意到udtCoat變量既不是字符串也不是整型,而是我們自己定義的枚舉類型CoatType。
     當類CDog打開時,選擇"Tools"菜單中的"Add Procedure"命令,彈出相應的對話框;
     Name編輯框中鍵入Coat;
     選中"Property"選項按鈕,然后單擊[OK]。
     系統(tǒng)自動產(chǎn)生下列代碼框架:
    Public Property Get Coat() As Variant
     End Property
     Public Property Let Coat(ByVal vNewValue As Variant)
     End Property