Get 语句
声明用于检索属性值的 Get
属性过程。
语法
[ <attributelist> ] [ accessmodifier ] Get()
[ statements ]
End Get
组成部分
术语 | 定义 |
---|---|
attributelist |
可选。 请参阅特性列表。 |
accessmodifier |
此属性中最多有一个 Get 和 Set 语句是可选的。 可以是以下值之一:- Protected - Friend - 专用 - Protected Friend 请参阅 Access levels in Visual Basic。 |
statements |
可选。 调用 Get 属性过程时运行的一个或多个语句。 |
End Get |
必需。 终止 Get 属性过程的定义。 |
注解
每个属性都必须有一个 Get
属性过程,除非该属性被标记为 WriteOnly
。 Get
过程用于返回属性的当前值。
当表达式请求属性的值时,Visual Basic 会自动调用属性的 Get
过程。
属性声明的正文只能包含属性语句与 End Property
语句之间的属性的 Get
和 Set
过程。 除了这些过程之外,不能存储任何其他内容。 特别是,它不能存储属性的当前值。 必须将此值存储在属性之外,因为如果你将其存储在任一属性过程中,另一个属性过程将无法访问它。 通常的方法是将值存储在与属性相同级别声明的私有变量中。 你必须在它适用的属性内定义一个 Get
过程。
除非你在 Get
语句中使用 accessmodifier
,否则 Get
过程默认为其包含属性的访问级别。
规则
混合访问级别。 如果要定义读写属性,则可以选择为
Get
或Set
过程指定不同的访问级别,但不能同时为这两个过程指定。 如果同时为这两个过程指定,则过程访问级别必须比属性的访问级别更严格。 例如,如果属性声明为Friend
,则可以将Get
过程声明为Private
,但不能声明为Public
。如果你正在定义一个
ReadOnly
属性,则Get
过程表示整个属性。 你不能为Get
声明不同的访问级别,因为这会为该属性设置两个访问级别。返回类型。 Property 语句可以声明它返回的值的数据类型。
Get
过程自动返回该数据类型。 你可以指定任何数据类型或枚举、结构、类或接口的名称。如果
Property
语句未指定returntype
,则过程返回Object
。
行为
从过程中返回。 当
Get
过程返回到调用代码时,在请求属性值的语句中继续执行。Get
属性过程可以使用 Return 语句或通过将返回值赋予属性名称来返回值。 有关详细信息,请参阅 Function 语句中的“返回值”。Exit Property
和Return
语句将导致立即退出属性过程。 任意数量的Exit Property
和Return
语句可以出现在过程中的任何位置,并且你可以混合使用Exit Property
和Return
语句。返回值。 要从过程中
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