Friend (Visual Basic)

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

备注

下面的类使用 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。 这意味着 Friend 元素的声明上下文必须是源文件、命名空间、接口、模块、类或结构,不能是过程。

  • **组合修饰符。**您可以将 Friend 修饰符与同一个声明中的 Protected (Visual Basic) 修饰符结合起来使用。 此组合对已声明的元素同时授予 Friend 和 Protected 访问权限,故从同一程序集中的任何位置、它们自己的类和任何派生类中均可访问它们。 只能对类的成员指定 Protected Friend。

行为

  • **访问级别。**声明上下文中的所有代码均可以访问其元素。 编译到同一程序集的其他类、结构和模块中的代码可以访问该程序集中的所有 Friend 元素。

    Friend 访问不是 Protected 访问的超集或子集。

  • **访问修饰符。**指定访问级别的关键字称为“访问修饰符”。 有关访问修饰符的比较,请参见 Visual Basic 中的访问级别

何时使用 Friend

许多情况下,需要让整个程序集使用某些编程元素(如类或结构),而不是只是让声明它们的组件使用。 但是,您可能不希望该程序集之外的代码访问这些元素(例如,此应用程序拥有专利时)。 如果希望用这种方式来限制对某个元素的访问,可以使用 Friend 来声明它。

Friend 访问通常是应用程序的编程元素的首选级别。 请注意,若未另行声明,接口、模块、类或结构的访问级别默认为 Friend。

Friend 修饰符可用于下面的上下文中:

Class 语句

Const 语句

Declare 语句

Delegate 语句

Dim 语句

Enum 语句

Event 语句

Function 语句

Interface 语句

Module 语句

Property 语句

Structure Statement

Sub 语句

请参见

参考

Public (Visual Basic)

Protected (Visual Basic)

Private (Visual Basic)

概念

Visual Basic 中的访问级别

Visual Basic 中的过程

其他资源

结构 (Visual Basic)

Visual Basic 中的对象和类