Share via


Get 陳述式

宣告用來擷取屬性值的 Get 屬性程序。

語法

[ <attributelist> ] [ accessmodifier ] Get()  
    [ statements ]  
End Get  

組件

詞彙 定義
attributelist 選擇性。 請參閱屬性清單
accessmodifier 最多對此屬性中 GetSet 陳述式的其中一者為選擇性。 可以是下列其中一項:

- Protected
- Friend
- 私用
- Protected Friend

請參閱 Access levels in Visual Basic
statements 選擇性。 呼叫 Get 屬性程序時執行的一或多個陳述式。
End Get 必要。 終止 Get 屬性程序的定義。

備註

除非屬性標示為 WriteOnly,否則每個屬性都必須有 Get 屬性程序。 Get 程序可用來傳回屬性的目前值。

當運算式要求屬性值時,Visual Basic 會自動呼叫屬性的 Get 程序。

屬性宣告的主體只能包含屬性陳述式End Property 陳述式之間屬性的 GetSet 程序。 它無法儲存這些程序以外的任何項目。 它尤其無法儲存屬性目前的值。 因為您如果將此值儲存在任一屬性程序內,其他屬性程序就無法存取它,所以您必須將其儲存在屬性之外。 一般方法是將值儲存在與屬性相同層級宣告的私用變數中。 您必須在套用該值的屬性中定義 Get 程序。

除非您在 Get 陳述式使用 accessmodifier,否則 Get 程式會將所包含屬性的存取層級設為預設值。

規則

  • 混合的存取層級。 如果您要定義讀寫屬性,您可以選擇性地為 GetSet 程序指定不同的存取層級,但不能同時指定兩者。 如果您這樣做,程序存取層級必須比屬性的存取層級更嚴格。 例如,如果屬性已宣告為 Friend,則您可以將 Get 程序宣告為 Private,但不能宣告為 Public

    如果您要定義 ReadOnly 屬性,則 Get 程序代表整個屬性。 因為對 Get 宣告不同的存取層級會為屬性設定兩個存取層級,所以您無法執行此動作。

  • 傳回型別。 屬性陳述式可以宣告其所傳回值的資料類型。 Get 程序會自動傳回該資料類型。 您可以指定任何資料類型,或是列舉、結構、類別或介面的名稱。

    如果 Property 陳述式未指定 returntype,則程序會傳回 Object

行為

  • 從程序傳回。Get 程序傳回呼叫端程式碼時,執行會在要求屬性值的陳述式內接續進行。

    Get 屬性程序可以使用 Return 陳述式或將傳回值指派給屬性名稱來傳回值。 如需詳細資訊,請參閱函式陳述式的<傳回值>。

    Exit PropertyReturn 陳述式會導致屬性程序立即結束。 任意數目的 Exit PropertyReturn 陳述式可以出現在程序中的任何位置,且您可以混合 Exit PropertyReturn 陳述式。

  • 傳回值。 若要從 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 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

另請參閱