VB.NET Property過程也稱屬性訪問器
我們?cè)?jīng)為大家?guī)砹?a >VB.NET Sub Main過程等過程的相關(guān)概念介紹,相信關(guān)注我們51CTO網(wǎng)站的編程愛好者們應(yīng)該能從中學(xué)到不少東西。今天我們會(huì)為大家詳細(xì)介紹一下VB.NET Property過程的一些基礎(chǔ)知識(shí)。#t#
屬性過程是操作模塊、類或結(jié)構(gòu)上的自定義屬性的一系列 Visual Basic 語句。VB.NET Property過程也稱為“屬性訪問器”。
Visual Basic 提供了以下屬性過程:
Get 過程返回屬性值。在表達(dá)式中訪問屬性時(shí)將調(diào)用此過程。
Set 過程將屬性設(shè)置為某個(gè)值,包括對(duì)象引用。將一個(gè)值賦給屬性時(shí),它將被調(diào)用。
通常VB.NET Property過程使用 Get 和 Set 語句成對(duì)定義,但是如果該屬性為只讀 (Get 語句) 或只寫 (Set 語句 (Visual Basic)),則可以獨(dú)立定義過程。
可以定義類、結(jié)構(gòu)和模塊中的屬性。默認(rèn)情況下,屬性為 Public,這意味著在可以訪問該屬性的容器的應(yīng)用程序中,可以從任何位置調(diào)用它們。
有關(guān)屬性和變量的比較,請(qǐng)參見 Visual Basic 中屬性和變量的差異。
聲明語法
聲明每個(gè)參數(shù)的方法與聲明 Sub 過程 的方法相同,但傳遞機(jī)制必須是 ByVal。
參數(shù)列表中每個(gè)參數(shù)的語法如下所示:
- [Optional] ByVal [ParamArray]
parametername As datatype
如果該參數(shù)是可選的,也必須提供默認(rèn)值作為聲明的一部分。指定默認(rèn)值的語法如下所示:
- Optional ByVal parametername
As datatype = defaultvalue
屬性值
通過引用屬性,可以隱式調(diào)用VB.NET Property過程。除了必須提供所有非可選參數(shù)的值,以及必須用括號(hào)將參數(shù)列表括起來以外,使用屬性名的方法與使用變量名一樣。如果未提供任何參數(shù),則也可以選擇省略括號(hào)。
隱式調(diào)用 Set 過程的語法如下所示:
- propertyname[(argumentlist)]
= expression
隱式調(diào)用 Get 過程的語法如下所示:
- lvalue = propertyname
[(argumentlist)]- Do While (propertyname
[(argumentlist)] > expression)
聲明與調(diào)用闡釋
下面的屬性將一個(gè)全名存儲(chǔ)為兩個(gè)組成全名的名稱(名字和姓氏)。當(dāng)調(diào)用代碼讀取 fullName 時(shí),Get 過程將姓名的兩個(gè)組成部分組合在一起,并返回全名。當(dāng)調(diào)用代碼賦予一個(gè)新的全名時(shí),Set 過程嘗試將其分割為姓名的兩個(gè)組成部分。如果它沒有找到空格,則將其存儲(chǔ)為名字。
- 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
下面的示例演示了對(duì)VB.NET Property過程的典型調(diào)用。
- Visual Basic
- fullName = "MyFirstName
MyLastName"- MsgBox(fullName)