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

如果希望属性的 GetSet 过程具有不同的访问级别,可以在 Property 语句中使用更宽松的级别,在 GetSet 语句中使用更严格的级别。 如果希望代码的某些部分能够获取属性的值,而代码的某些其他部分能够更改该值,可对属性使用混合访问级别。

有关访问级别的详细信息,请参阅 Visual Basic 中的访问级别

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

  1. 以正常方式声明属性,并在 Property 语句中指定限制较少的访问级别(例如 Public)。

  2. 声明 GetSet 过程以指定更严格的访问级别(例如 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 类才能设置该值。

另请参阅