Friend (Visual Basic)
指定只能从包含其声明的程序集内部访问一个或多个声明的编程元素。
注解
在许多情况下,我们都希望类和结构等编程元素能够供整个程序集使用,而不是只能由声明它们的组件使用。 但是,你可能不希望程序集外的代码访问它们(例如,当应用程序是专有应用程序时)。 如果要按此方式限制对元素的访问,可以使用 Friend
修饰符对其进行声明。
编译到同一程序集的其他类、结构和模块中的代码可以访问该程序集中的所有 Friend
元素。
Friend
访问通常是应用程序编程元素的首选级别,而 Friend
是接口、模块、类或结构的默认访问级别。
只能在模块、接口或命名空间级别使用 Friend
。 因此,Friend
元素的声明上下文必须是源文件、命名空间、接口、模块、类或结构,而不能是过程。
注意
此外,还可使用 Protected Friend 访问修饰符,使类成员可从该类内部、派生类和定义该类的同一程序集中访问。 要将成员类的访问限制为从其类内部以及从同一程序集的派生类中访问,请使用 Private Protected 访问修饰符。
有关 Friend
与其他访问修饰符的比较,请参阅 Visual Basic 中的访问级别。
注意
可以指定另一个程序集是友元程序集,允许它访问标记为 Friend
的所有类型和成员。 有关详细信息,请参阅友元程序集。
示例
以下类使用 Friend
修饰符,允许同一程序集内的其他编程元素访问某些成员。
Class CustomerInfo
Private p_CustomerID As Integer
Public ReadOnly Property CustomerID() As Integer
Get
Return p_CustomerID
End Get
End Property
' Allow friend access to the empty constructor.
Friend Sub New()
End Sub
' Require that a customer identifier be specified for the public constructor.
Public Sub New(ByVal customerID As Integer)
p_CustomerID = customerID
End Sub
' Allow friend programming elements to set the customer identifier.
Friend Sub SetCustomerID(ByVal customerID As Integer)
p_CustomerID = customerID
End Sub
End Class
使用情况
可以在以下上下文中使用 Friend
修饰符: