如果希望在某个属性上的Get和Set过程中具有不同的访问级别,可以在Property语句中使用更宽松的级别,在Get或Set语句中使用更严格的级别。 如果希望代码的某些部分能够获取属性的值,并且代码的某些其他部分能够更改值,则可以对属性使用混合访问级别。
有关访问级别的详细信息,请参阅 Visual Basic 中的访问级别。
声明具有混合访问级别的属性
以正常方式声明属性,并在语句中
Public指定限制较少的访问级别(例如Property)。声明
Get或Set过程以指定更严格的访问级别(例如Friend)。不要在其他属性过程中指定访问级别。 它采用
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类可以设置该值。