有時候,為了更好地處理類往往需更多的屬性。例如,假如你有四種不同的客戶群:集團、較大、較小和新的客戶類型,或者一個用于搜索的類中有三種不同的搜索方式:軟盤、硬盤和網(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
我想,答案是肯定的。因為這種處理就稱為"枚舉"。
打開上一節(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

