Friend (Visual Basic)

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

备注

许多情况下,需要让整个程序集使用某些编程元素(如类或结构),而不是只是让声明它们的组件使用。 但是,您可能不希望将其进行访问由程序集外部的代码 (例如,因此,如果应用程序是专有技术)。 如果要这样的限制对组件的访问,使用 Friend 修饰符,可以将其声明为。

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

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

仅可以 Friend 在模块、接口或命名空间级别。 因此,Friend 元素的声明上下文必须是源文件、命名空间、接口、模块、选件类或结构;它不能为程序。

您可以将 Friend 修饰符与同一个声明中的 Protected (Visual Basic) 修饰符结合起来使用。 此组合在声明元素商谈 Friend 访问和受保护的访问,因此,它们是可访问的中的任何位置相同程序集,从其选件类和派生类。 只能对类的成员指定 Protected Friend。

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

备注

可以指定另一个程序集是友元程序集,提供它访问所有类型和成员标记为 Friend。有关更多信息,请参见友元程序集(C# 和 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 修饰符:

Class 语句

Const 语句

Declare 语句

Delegate 语句

Dim 语句

Enum 语句

Event 语句

Function 语句

Interface 语句

Module 语句

Property 语句

Structure Statement

Sub 语句

请参见

参考

Public (Visual Basic)

Protected (Visual Basic)

Private (Visual Basic)

InternalsVisibleToAttribute

概念

Visual Basic 中的访问级别

Visual Basic 中的过程

其他资源

结构 (Visual Basic)

Visual Basic 中的对象和类