如何:声明具有混合访问级别的属性
更新:2007 年 11 月
如果需要属性上的 Get 和 Set 过程具有不同的访问级别,可以对 Property 语句使用更高的许可级别,对 Get 或 Set 语句使用更高的限制级别。如果希望代码的某些部分能够获取属性值,而其他某些部分能够更改属性值,则可以在属性上使用混合访问级别。
有关访问级别的更多信息,请参见 Visual Basic 中的访问级别。
声明带有混合访问级别的属性
按通常的方法声明属性,在 Property 语句中指定较低的限制访问级别(例如 Public)。
声明 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 类可以对它进行设置。