友元 (Visual Basic)

指定只能从包含声明的程序集内访问一个或多个声明的编程元素。

注解

在许多情况下,你希望整个程序集使用类和结构等编程元素,而不仅仅是声明它们的组件。 但是,你可能不希望程序集外部的代码访问它们(例如,如果应用程序是专有的)。 如果要以这种方式限制对元素的访问,可以使用修饰符声明它 Friend

编译到同一程序集的其他类、结构和模块中的代码可以访问该程序集中的所有 Friend 元素。

Friend 访问通常是应用程序编程元素的首选级别, Friend 是接口、模块、类或结构的默认访问级别。

只能在模块、接口或命名空间级别使用 Friend 。 因此,元素的 Friend 声明上下文必须是源文件、命名空间、接口、模块、类或结构;它不能是过程。

注释

还可以使用 受保护的友元 访问修饰符,该修饰符使类成员可从该类内部、从派生类以及从定义类的同一程序集访问。 若要限制对其类中成员的访问,以及从同一程序集中的派生类访问,请使用 专用保护 访问修饰符。

有关比较 Friend 和其他访问修饰符,请参阅 Visual Basic 中的 Access 级别

注释

可以指定另一个程序集是友元程序集,该程序集允许它访问标记为 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 修饰符:

类声明

Const 语句

Declare 语句

Delegate 语句

Dim 语句

Enum 语句

事件语句

函数语句

Interface 声明

模块声明

财产声明

结构语句

子语句

另请参阅