如何:声明具有混合访问级别的属性 (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 中属性和变量的差异