VB.NET Property過程也稱屬性訪問器
我們曾經為大家帶來了VB.NET Sub Main過程等過程的相關概念介紹,相信關注我們51CTO網站的編程愛好者們應該能從中學到不少東西。今天我們會為大家詳細介紹一下VB.NET Property過程的一些基礎知識。#t#
屬性過程是操作模塊、類或結構上的自定義屬性的一系列 Visual Basic 語句。VB.NET Property過程也稱為“屬性訪問器”。
Visual Basic 提供了以下屬性過程:
Get 過程返回屬性值。在表達式中訪問屬性時將調用此過程。
Set 過程將屬性設置為某個值,包括對象引用。將一個值賦給屬性時,它將被調用。
通常VB.NET Property過程使用 Get 和 Set 語句成對定義,但是如果該屬性為只讀 (Get 語句) 或只寫 (Set 語句 (Visual Basic)),則可以獨立定義過程。
可以定義類、結構和模塊中的屬性。默認情況下,屬性為 Public,這意味著在可以訪問該屬性的容器的應用程序中,可以從任何位置調用它們。
有關屬性和變量的比較,請參見 Visual Basic 中屬性和變量的差異。
聲明語法
聲明每個參數的方法與聲明 Sub 過程 的方法相同,但傳遞機制必須是 ByVal。
參數列表中每個參數的語法如下所示:
- [Optional] ByVal [ParamArray]
parametername As datatype
如果該參數是可選的,也必須提供默認值作為聲明的一部分。指定默認值的語法如下所示:
- Optional ByVal parametername
As datatype = defaultvalue
屬性值
通過引用屬性,可以隱式調用VB.NET Property過程。除了必須提供所有非可選參數的值,以及必須用括號將參數列表括起來以外,使用屬性名的方法與使用變量名一樣。如果未提供任何參數,則也可以選擇省略括號。
隱式調用 Set 過程的語法如下所示:
- propertyname[(argumentlist)]
= expression
隱式調用 Get 過程的語法如下所示:
- lvalue = propertyname
[(argumentlist)]- Do While (propertyname
[(argumentlist)] > expression)
聲明與調用闡釋
下面的屬性將一個全名存儲為兩個組成全名的名稱(名字和姓氏)。當調用代碼讀取 fullName 時,Get 過程將姓名的兩個組成部分組合在一起,并返回全名。當調用代碼賦予一個新的全名時,Set 過程嘗試將其分割為姓名的兩個組成部分。如果它沒有找到空格,則將其存儲為名字。
- Visual Basic
- Dim firstName, lastName As String
- Property fullName() As String
- Get
- If lastName = "" Then
- Return firstName
- Else
- Return firstName & " " & lastName
- End If
- End Get
- Set(ByVal Value As String)
- Dim space As Integer = Value.IndexOf(" ")
- If space < 0 Then
- firstName = Value
- lastName = ""
- Else
- firstName = Value.Substring(0, space)
- lastName = Value.Substring(space + 1)
- End If
- End Set
- End Property
下面的示例演示了對VB.NET Property過程的典型調用。
- Visual Basic
- fullName = "MyFirstName
MyLastName"- MsgBox(fullName)