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 属性过程的定义。

注解

每个属性都必须有一个 Get 属性过程,除非该属性被标记为 WriteOnlyGet 过程用于返回属性的当前值。

当表达式请求属性的值时,Visual Basic 会自动调用属性的 Get 过程。

属性声明的正文只能包含属性语句End Property 语句之间的属性的 GetSet 过程。 除了这些过程之外,不能存储任何其他内容。 特别是,它不能存储属性的当前值。 必须将此值存储在属性之外,因为如果你将其存储在任一属性过程中,另一个属性过程将无法访问它。 通常的方法是将值存储在与属性相同级别声明的私有变量中。 你必须在它适用的属性内定义一个 Get 过程。

除非你在 Get 语句中使用 accessmodifier,否则 Get 过程默认为其包含属性的访问级别。

规则

  • 混合访问级别。 如果要定义读写属性,则可以选择为 GetSet 过程指定不同的访问级别,但不能同时为这两个过程指定。 如果同时为这两个过程指定,则过程访问级别必须比属性的访问级别更严格。 例如,如果属性声明为 Friend,则可以将 Get 过程声明为 Private,但不能声明为 Public

    如果你正在定义一个 ReadOnly 属性,则 Get 过程表示整个属性。 你不能为 Get 声明不同的访问级别,因为这会为该属性设置两个访问级别。

  • 返回类型。 Property 语句可以声明它返回的值的数据类型。 Get 过程自动返回该数据类型。 你可以指定任何数据类型或枚举、结构、类或接口的名称。

    如果 Property 语句未指定 returntype,则过程返回 Object

行为

  • 从过程中返回。Get 过程返回到调用代码时,在请求属性值的语句中继续执行。

    Get 属性过程可以使用 Return 语句或通过将返回值赋予属性名称来返回值。 有关详细信息,请参阅 Function 语句中的“返回值”。

    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

另请参阅