Get宣告用來擷取屬性值的屬性程式。
語法
[ <attributelist> ] [ accessmodifier ] Get()
[ statements ]
End Get
組件
| 術語 | 定義 |
|---|---|
attributelist |
選擇性。 請參閱 屬性清單。 |
accessmodifier |
在這裡屬性中,最多有一個 Get 和 Set 語句是選擇性的 。 可以是下列其中一項:- 保護 - 朋友 - 私人 - Protected Friend請參閱 Visual Basic 中的存取層級。 |
statements |
選擇性。 呼叫屬性程序時 Get 執行的一或多個語句。 |
End Get |
必須的。 終止屬性程序的定義 Get 。 |
備註
除非屬性標示WriteOnly為 ,否則每個屬性都必須有Get屬性程式。 程式 Get 是用來傳回 屬性的目前值。
當表達式要求屬性值時,Visual Basic 會自動呼叫屬性 Get 的程式。
屬性宣告的主體只能包含 Property 語句與 語句之間的 屬性Get和SetEnd Property程式。 它無法儲存這些程式以外的任何專案。 特別是,它無法儲存屬性的目前值。 您必須將此值儲存在 屬性之外,因為如果您將其儲存在任一屬性程式內,其他屬性程式就無法存取它。 一般方法是將值儲存在與 屬性相同層級宣告的 Private 變數中。 您必須在套用的 屬性內定義 Get 程式。
除非您在語句中使用 Get ,否則Getaccessmodifier此程式預設為其包含屬性的存取層級。
規則
混合存取層級。 如果您要定義讀寫屬性,您可以選擇性地為
Get或Set程式指定不同的存取層級,但不能同時指定兩者。 如果您這樣做,程式存取層級必須比屬性的存取層級更嚴格。 例如,如果屬性宣告Friend為 ,您可以宣告程式Private,但不能Public宣告Get。如果您要定義
ReadOnly屬性,則Get程式代表整個屬性。 您無法針對 宣告不同的存取層級Get,因為這會為 屬性設定兩個存取層級。傳回類型。 Property Statement 可以宣告其傳回之值的數據類型。 此
Get程式會自動傳回該數據類型。 您可以指定任何資料類型或列舉、結構、類別或介面的名稱。Property如果語句未指定returntype,則程式會傳Object回 。
行為
從程式傳回。
Get當程式傳回呼叫端程式代碼時,會在要求屬性值的語句內繼續執行。Get屬性程式可以使用 Return Statement 或將傳回值指派給屬性名稱,來傳回值。 如需詳細資訊,請參閱 Function 語句中的「傳回值」。Exit Property和Return語句會立即結束屬性程式。 程式中的任何位置都可以顯示任意數目 的Exit Property和Return語句,而且您可以混合Exit Property和Return語句。傳回值。 若要從
Get程式傳回值,您可以將值指派給屬性名稱,或將其包含在 Return 語句中。 語句Return會同時指派Get程式傳回值,並結束程式。如果您使用
Exit Property而不將值指派給屬性名稱,則Get程式會傳回屬性數據類型的預設值。 如需詳細資訊,請參閱 Function 語句中的「傳回值」。下列範例說明只讀屬性
quoteForTheDay可以傳回私用變數quoteValue中保留的值的兩種方式。Private quoteValue As String = "No quote assigned yet."ReadOnly Property QuoteForTheDay() As String Get QuoteForTheDay = quoteValue Exit Property End Get End PropertyReadOnly Property QuoteForTheDay() As String Get Return quoteValue End Get End Property
範例
下列範例會 Get 使用語句傳回 屬性的值。
Class propClass
' Define a private local variable to store the property value.
Private currentTime As String
' Define the read-only property.
Public ReadOnly Property DateAndTime() As String
Get
' The Get procedure is called automatically when the
' value of the property is retrieved.
currentTime = CStr(Now)
' Return the date and time As a string.
Return currentTime
End Get
End Property
End Class