Get 陳述式
更新:2007 年 11 月
宣告用以擷取屬性 (Property) 值的 Get 屬性程序。
[ <attributelist> ] [ accessmodifier ] Get() [ statements ] End Get
參數
attributelist
選擇項。請參閱屬性清單。accessmodifier
在這個屬性之其中一個 Get 和 Set 陳述式上的選擇項。可以是下列其中一項:請參閱 Visual Basic 中的存取層級。
statements
選擇項。呼叫 Get 屬性程序時會執行的一或多個陳述式。End Get
必要項。用於結束 Get 屬性程序的定義。
備註
除非屬性標示為 WriteOnly,否則每一個屬性都必須有一個 Get 屬性程序。Get 程序是用於傳回屬性的目前值。
當運算式要求屬性值時,Visual Basic 就會自動呼叫屬性的 Get 程序。
屬性宣告主體只可在 Property 陳述式與 End Property 陳述式之間包含屬性的 Get 和 Set 程序,除了這些程序以外,它無法儲存其他程序。特別是無法儲存屬性的目前值。因為如果將這個值儲存在任一屬性程序中,則其他屬性程序無法存取它,所以必須將它儲存在屬性外部。一般的處理方式是將值儲存在與屬性相同層級上宣告的 Private (Visual Basic) 變數中。您必須將 Get 程序定義在套用它的屬性內。
Get 程序預設為包含屬性的存取層級,除非您在 Get 陳述式中使用 accessmodifier。
規則
混合存取層級 如果您要定義 read-write 屬性,可以選擇指定 Get 或 Set 程序的不同存取層級,但不可同時指定兩者。如果您這樣做,程序的存取層級必須比屬性的存取層級更嚴格。例如,如果屬性已宣告為 Friend,則您可以將 Get 程序宣告為 Private,但不能宣告為 Public。
如果正在定義 ReadOnly 屬性,則 Get 程序會代表整個屬性。若為 Get 宣告不同的存取層級,則會為屬性設定兩種存取層級,因此您不能這樣做。
傳回型別:Property 陳述式可以宣告它所傳回之值的資料型別。Get 程序會自動傳回該資料型別。您可以指定任何資料型別,或列舉型別、結構、類別或介面的名稱。
如果 Property 陳述式未指定 returntype,程序將傳回 Object。
行為
從程序傳回:當 Get 程序傳回到呼叫程式碼時,執行會在已要求屬性值的陳述式內繼續進行。
Get 屬性程序可以傳回值,方法是使用 Return 陳述式 (Visual Basic),或指派傳回值給屬性名稱。如需詳細資訊,請參閱 Function 陳述式 (Visual Basic) 中「傳回值」的部分。
Exit Property 和 Return 陳述式會造成立即退出屬性程序。任意數目的 Exit Property 和 Return 陳述式可以出現在程序中的任何地方,並且 Exit Property 和 Return 陳述式可以混合使用。
傳回值:若要從 Get 程序傳回值,您可以指派值給屬性名稱,或將它併入 Return 陳述式 (Visual Basic)。Return 陳述式會同時指派 Get 程序傳回值並結束程序。
如果您使用 Exit Property,但未指派值給屬性名稱,則 Get 程序會傳回屬性資料型別的預設值。如需詳細資訊,請參閱 Function 陳述式 (Visual Basic) 中「傳回值」的部分。
下列範例會說明兩種方法,唯讀屬性 quoteForTheDay 可以用於傳回私用變數 quoteValue 中所保留的值。
Private quoteValue As String = "No quote assigned yet."
ReadOnly Property quoteForTheDay() As String Get quoteForTheDay = quoteValue Exit Property End Get End Property
ReadOnly 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