Get 语句

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

请参见

任务

演练:定义类 (Visual Basic)

参考

Set 语句 (Visual Basic)

Property 语句

Exit 语句 (Visual Basic)

其他资源

Visual Basic 中的对象和类