一.“字段”或“屬性過程”<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
向類中添加屬性可以採用兩種方式:“字段”或“屬性過程”。
1.字段。字段其實只是類中的公共變量,可以從該類的外部設置或讀取這些變量。它們對於無需驗證的屬性很有用,例如 Boolean(True 或 False)值。例如,在 Persons 類中,可能有一個名爲 Alive 的 Boolean 屬性,它指定一個人是死了還是活着,代碼如下:
Public Alive As Boolean
2.屬性過程。大多數屬性要比這複雜,因此多數情況下需要使用屬性過程向類中添加屬性。屬性過程有三個部分:存儲屬性值的私有變量的聲明;公開該值的 Get 過程以及 Set 過程,顧名思義,即設置該值的過程。例如,Persons 類的 Name 屬性的屬性過程如下所示。
Private nameValue As String
Public Property Name() As String
Get
Name = nameValue
End Get
Set(ByVal value As String)
nameValue = value
End Set
End Property
第一行代碼聲明一個私有 String 變量 nameValue 來存儲屬性的值。屬性過程本身以 Public Property 開始,以 End Property 結束。Get 過程包含您要讀取屬性值時將被執行的代碼。例如,如果讀取 Persons.Name 屬性,該代碼將會調用存儲在 nameValue 變量中的值。Set 過程包含用於爲 nameValue 變量賦新值的代碼,它將傳遞給該變量的值用作 value 參數。例如,如果編寫代碼 Persons.Name = "John",則 String 值 John 將作爲 value 參數傳遞;然後 Set 過程中的代碼將其賦值給 NameValue 變量以存儲。
您可能會問爲什麼舍近求遠而不用字段表示 Name 屬性。現實世界中的姓名有特定的規則。例如,姓名中通常不含數字。您可以在 Set 過程中添加代碼以檢查 value 參數,如其中含有數字則返回錯誤。
二.只讀和只寫屬性
可以用屬性的 Public、ReadOnly 或 WriteOnly 修飾符確定屬性如何工作。
ReadOnly 關鍵字用於指定只能讀取但不能修改的屬性值。如果嘗試爲 ReadOnly 屬性賦值,代碼編輯器中將會出現錯誤。例如,表示僱員編號的屬性永遠不能更改,所以它可以由另一個程序讀取,但您不能允許該程序更改它的值。要創建只讀屬性,需使用 Get 過程而不是 Set 過程來創建屬性過程,如下所示:
Private IDValue As Integer
ReadOnly Property ID() As Integer
Get
ID = IDValue
End Get
End Property
WriteOnly 關鍵字允許設置屬性值但不允許讀取屬性值,例如,不允許其他程序讀取密碼屬性。您可以在類中使用該值,但需要使其保持爲私有。要創建只寫屬性,需使用 Set 過程而不是 Get 過程來創建屬性,如下所示。
Private passwordValue As String
WriteOnly Property Password() As String
Set(ByVal value As String)
passwordValue = value
End Set
End Property