如何:声明具有混合访问级别的属性 (Visual Basic)

如果需要属性上的 Get 和 Set 过程具有不同的访问级别,可以对 Property 语句使用更高的许可级别,对 Get 或 Set 语句使用更高的限制级别。如果希望代码的某些部分能够获取属性值,而其他某些部分能够更改属性值,则可以在属性上使用混合访问级别。

有关访问级别的更多信息,请参见 Visual Basic 中的访问级别

声明带有混合访问级别的属性

  1. 按通常的方法声明属性,在 Property 语句中指定较低的限制访问级别(例如 Public)。

  2. 声明 Get 或 Set 过程,指定更高的限制访问级别(例如 Friend)。

  3. 不要在其他属性过程上指定访问级别。它假定已在 Property 语句中声明了访问级别。可以仅在一个属性过程上限制访问权限。

    Public Class employee
        Private salaryValue As Double
        Protected Property salary() As Double
            Get
                Return salaryValue
            End Get
            Private Set(ByVal value As Double)
                salaryValue = value
            End Set
        End Property
    End Class
    

    在前面的示例中,Get 过程具有与属性自身相同的 Protected 访问权限,而 Set 过程具有 Private 访问权限。派生自 employee 的类可以读取 salary 值,但只有 employee 类可以对它进行设置。

请参见

任务

如何:创建属性 (Visual Basic)

如何:调用 Property 过程 (Visual Basic)

如何:在 Visual Basic 中声明和调用默认属性

如何:在属性中放置值 (Visual Basic)

如何:从属性获取值 (Visual Basic)

参考

Property 语句

概念

Visual Basic 中的过程

Property 过程 (Visual Basic)

过程参数和变量 (Visual Basic)

Visual Basic 中属性和变量的差异