VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > VB.net教程 >
  • Property 语句

声明属性的名称和用于存储和检索属性值的属性过程。

[ <attributelist> ] [ Default ] [ accessmodifier ] 
[ propertymodifiers ] [ Shared ] [ Shadows ] [ ReadOnly | WriteOnly ] 
Property name ( [ parameterlist ] ) [ As returntype ] [ Implements implementslist ]
    [ <attributelist> ] [ accessmodifier ] Get
        [ statements ]
    End Get
    [ <attributelist> ] [ accessmodifier ] Set ( ByVal value As returntype [, parameterlist ] )
        [ statements ]
    End Set
End Property
- or -
[ <attributelist> ] [ Default ] [ accessmodifier ] 
[ propertymodifiers ] [ Shared ] [ Shadows ] [ ReadOnly | WriteOnly ] 
Property name ( [ parameterlist ] ) [ As returntype ] [ Implements implementslist ]

部件

术语

定义

attributelist

可选。 应用于此属性或者 Get 或 Set 过程的特性列表。 请参见特性列表。

Default

可选。 指定此属性是定义它的类或结构的默认属性。 默认属性必须接受参数,并且不必指定属性名即可设置和检索默认属性。 如果将属性声明为 Default,则不能对属性及其属性过程使用 Private。

accessmodifier

Property 语句以及 Get 和 Set 语句之一(且只能是这两条语句中的一条)的可选项。 可以是如下内容之一:

  • Public

  • Protected

  • Friend

  • Private

  • Protected Friend

请参见Visual Basic 中的访问级别。

propertymodifiers

可选。 可以是如下内容之一:

  • Overloads

  • Overrides

  • Overridable

  • NotOverridable

  • MustOverride

  • MustOverride Overrides

  • NotOverridable Overrides

Shared

可选。 请参见Shared (Visual Basic)。

Shadows

可选。 请参见Shadows (Visual Basic)。

ReadOnly

可选。 请参见ReadOnly (Visual Basic)。

WriteOnly

可选。 请参见WriteOnly (Visual Basic)。

name

必选。 属性的名称。 请参见已声明的元素名称 (Visual Basic)。

parameterlist

可选。 局部变量名列表,它们表示此属性的参数及 Set 过程可能具有的其他参数。 请参见参数列表 (Visual Basic)。

returntype

如果 Option Strict 为 On 则需要。 此属性返回值的数据类型。

Implements

可选。 指出此属性实现一个或多个属性,每个属性均在由此属性的包含类或结构实现的接口中定义。 请参见Implements 语句。

implementslist

如果提供了 Implements 则需要。 将实现的属性列表。

implementedproperty [ , implementedproperty ... ]

每个 implementedproperty 均有下列语法和部分:

interface.definedname

 
部分说明
interface 必选。此属性的包含类或结构实现的接口名称。
definedname 必选。在 interface 中定义属性时所用的名称。

 

Get

可选。 如果属性标记为 WriteOnly,则为必需项。 启动用于返回属性值的 Get 属性过程。

statements

可选。 在 Get 或 Set 过程中运行的语句块。

End Get

终止 Get 属性过程。

Set

可选。 如果属性标记为 ReadOnly,则为必需项。 启动用于存储属性值的 Set 属性过程。

End Set

终止 Set 属性过程。

End Property

结束此属性的定义。

备注

Property 语句引入了属性声明。 属性可以有 Get 过程(只读)、Set 过程(只写)或同时有两个过程(读写) 使用自动实现的属性时,可以省略 Get 和 Set 过程。 有关更多信息,请参见 自动实现的属性 (Visual Basic)。

只能在类级使用 Property。 这意味着属性的“声明上下文”必须是类、结构、模块或接口,不能是源文件、命名空间、过程或块。 有关更多信息,请参见声明上下文和默认访问级别 (Visual Basic)。

默认情况下,属性使用公共访问。 您可以在 Property 语句上使用访问修饰符调整属性的访问级别,还可以将其中一个属性过程调整到更为严格的访问级别。

在属性赋值期间,Visual Basic 会将参数传递给 Set 过程。 如果没有为 Set 提供参数,则集成开发环境 (IDE) 将使用一个名为 value 的隐式参数。 此参数容纳要赋给属性的值。 通常在私有局部变量中存储此值,并在调用 Get 过程时返回它。

规则

  • **混合访问级别。**如果定义一个读写属性,则可以根据需要为 Get 或 Set 过程指定不同的访问级别,但不能同时为两者这样做。 否则,过程访问级别在限制性上必须比属性的访问级别更高。 例如,如果属性被声明为 Friend,则可以将 Set 过程声明为 Private,但不能声明为 Public。

    如果定义 ReadOnly 或 WriteOnly 属性,则单个属性过程(分别对应 Get 或 Set)表示整个属性。 因此不能为此类过程声明不同的访问级别,因为这样做会为属性设置两个访问级别。

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

    如果不指定 returntype,属性将返回 Object。

  • **实现。**如果此属性使用 Implements 关键字,包含类或结构的 Class 或 Structure 语句后面必须紧跟着 Implements 语句。 Implements 语句必须包含在 implementslist 中指定的每个接口。 不过,接口定义 Property 时所用的名称(在 definedname 中)不必与此属性的名称(在 name 中)相同。

行为

  • **从属性过程返回。**当 Get 或 Set 过程返回到调用代码时,继续执行调用它的语句之后的语句。

    使用 Exit Property 和 Return 语句可以立即从属性过程中退出。 过程中的任何地方可以出现任意数量的 Exit Property 和 Return 语句,而且可以混用 Exit Property 和 Return 语句。

  • **返回值。**要从 Get 过程返回某个值,可以将该值赋给属性名,或者将其包含在 Return 语句中。 下面的示例将该返回值赋给属性名 quoteForTheDay,然后使用 Exit Property 语句返回。

    VB
    Private quoteValue As String = "No quote assigned yet."
    
    VB
    ReadOnly Property quoteForTheDay() As String
        Get
            quoteForTheDay = quoteValue
            Exit Property
        End Get
    End Property
    

    如果使用 Exit Property 但未给 name 赋值,则 Get 过程将返回属性数据类型的默认值。

    Return 语句为 Get 过程的返回值赋值,同时退出该过程。 下面的示例显示如何执行此项操作。

    VB
    Private quoteValue As String = "No quote assigned yet."
    
    VB
    ReadOnly Property quoteForTheDay() As String
        Get
            Return quoteValue
        End Get
    End Property
    

示例

下面的示例声明类中的一个属性。

VB
Class Class1
    ' Define a local variable to store the property value.
    Private propertyValue As String
    ' Define the property.
    Public Property prop1() As String
        Get
            ' The Get property procedure is called when the value
            ' of a property is retrieved.
            Return propertyValue
        End Get
        Set(ByVal value As String)
            ' The Set property procedure is called when the value 
            ' of a property is modified.  The value to be assigned
            ' is passed in the argument to Set.
            propertyValue = value
        End Set
    End Property
End Class

 

原文链接:https://docs.microsoft.com/zh-cn/previous-versions/visualstudio/visual-studio-2010/zzh9ha57(v=vs.100)

相关教程