Get 语句

更新:2007 年 11 月

声明用于检索属性值的 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。

规则

  • **混合访问级别。**如果要定义读写属性,可以选择为 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

请参见

任务

如何:向类添加字段和属性

参考

Set 语句 (Visual Basic)

Property 语句

Exit 语句 (Visual Basic)