共用方式為


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

請參閱

工作

HOW TO:將欄位和屬性加入至類別

參考

Set 陳述式 (Visual Basic)

Property 陳述式

Exit 陳述式 (Visual Basic)