Friend (Visual Basic)Friend (Visual Basic)

Указывает, что один или несколько объявленных программных элементов доступны только в пределах сборки, содержащей их объявление.Specifies that one or more declared programming elements are accessible only from within the assembly that contains their declaration.

КомментарииRemarks

Во многих случаях требуется, чтобы элементы программирования, такие как классы и структуры, использовались целой сборкой, а не только компонентом, который их объявляет.In many cases, you want programming elements such as classes and structures to be used by the entire assembly, not only by the component that declares them. Однако может быть нежелательно, чтобы они были доступны коду за пределами сборки (например, если приложение является собственным).However, you might not want them to be accessible by code outside the assembly (for example, if the application is proprietary). Если требуется ограничить доступ к элементу таким образом, его можно объявить с помощью Friend модификатора.If you want to limit access to an element in this way, you can declare it by using the Friend modifier.

Код в других классах, структурах и модулях, компилируемых в одну и ту же сборку, может обращаться ко всем Friend элементам в этой сборке.Code in other classes, structures, and modules that are compiled to the same assembly can access all the Friend elements in that assembly.

Friendдоступ часто является предпочтительным уровнем для программных элементов приложения, а Friend также уровнем доступа по умолчанию для интерфейса, модуля, класса или структуры.Friend access is often the preferred level for an application's programming elements, and Friend is the default access level of an interface, a module, a class, or a structure.

Можно использовать Friend только на уровне модуля, интерфейса или пространства имен.You can use Friend only at the module, interface, or namespace level. Таким образом, контекст объявления для Friend элемента должен быть исходным файлом, пространством имен, интерфейсом, модулем, классом или структурой. он не может быть процедурой.Therefore, the declaration context for a Friend element must be a source file, a namespace, an interface, a module, a class, or a structure; it can't be a procedure.

Примечание

Можно также использовать модификатор доступа Protected Friend , который делает член класса доступным из этого класса, из производных классов и из той же сборки, в которой определен класс.You can also use the Protected Friend access modifier, which makes a class member accessible from within that class, from derived classes, and from the same assembly in which the class is defined. Для ограничения доступа к члену из его класса и из производных классов в той же сборке используется модификатор закрытого доступа.To restrict access to a member from within its class and from derived classes in the same assembly, you use the Private Protected access modifier.

Сравнение Friend и других модификаторов доступа см. в разделе уровни доступа в Visual Basic.For a comparison of Friend and the other access modifiers, see Access levels in Visual Basic.

Примечание

Можно указать, что другая сборка является дружественной, что позволяет ей получить доступ ко всем типам и членам, помеченным как Friend .You can specify that another assembly is a friend assembly, which allows it to access all types and members that are marked as Friend. Дополнительные сведения см. в разделе Дружественные сборки.For more information, see Friend Assemblies.

ПримерExample

Следующий класс использует Friend модификатор, чтобы разрешить другим элементам программирования в той же сборке доступ к определенным элементам.The following class uses the Friend modifier to allow other programming elements within the same assembly to access certain members.

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

ИспользованиеUsage

Модификатор можно использовать Friend в следующих контекстах:You can use the Friend modifier in these contexts:

Оператор ClassClass Statement

Оператор ConstConst Statement

Declare StatementDeclare Statement

Оператор DelegateDelegate Statement

Оператор DimDim Statement

Оператор EnumEnum Statement

Оператор EventEvent Statement

Оператор FunctionFunction Statement

Оператор InterfaceInterface Statement

Оператор ModuleModule Statement

Property StatementProperty Statement

Оператор StructureStructure Statement

Оператор SubSub Statement

См. также разделSee also