Friend (Visual Basic)

Especifica que um ou mais elementos de programação declarados são acessíveis somente a partir de dentro do assembly que contém sua declaração.

Comentários

Em muitos casos, você deseja que elementos de programação, como classes e estruturas, sejam usados por todo o assembly, e não apenas pelo componente que os declara. No entanto, talvez você não queira que eles fiquem acessíveis por código fora do assembly (por exemplo, se o aplicativo for proprietário). Se você quiser limitar o acesso a um elemento dessa forma, poderá declará-lo usando o modificador Friend.

O código em outras classes, estruturas e módulos compilados para o mesmo assembly pode acessar todos os elementos Friend nesse assembly.

O acesso Friend geralmente é o nível preferencial para os elementos de programação de um aplicativo e Friend é o nível de acesso padrão de uma interface, um módulo, uma classe ou uma estrutura.

Você só pode usar Friend em nível de módulo, interface ou namespace. Portanto, o contexto de declaração de um elemento Friend deve ser um arquivo de origem, um namespace, uma interface, um módulo, uma classe ou uma estrutura. Ele não pode ser um procedimento.

Observação

Você também pode usar o modificador de acesso Protected Friend, que torna um membro de classe acessível de dentro dessa classe, de classes derivadas e do mesmo assembly no qual a classe é definida. Para restringir o acesso a um membro de dentro de sua classe e de classes derivadas no mesmo assembly, use o modificador de acesso Private Protected.

Para obter uma comparação entre Friend e os demais modificadores de acesso, consulte os Níveis de acesso no Visual Basic.

Observação

Você pode especificar que outro assembly é um assembly amigável, o que permite que ele acesse todos os tipos e membros marcados como Friend. Para obter mais informações, consulte Assemblies amigáveis.

Exemplo

A classe a seguir usa o modificador Friend para permitir que outros elementos de programação dentro do mesmo assembly acessem determinados membros.

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

Uso

Você pode usar o modificador Friend nestes contextos:

Instrução Class

Instrução Const

Instrução Declare

Instrução Delegate

Instrução Dim

Instrução Enum

Instrução Event

Instrução Function

Instrução Interface

Instrução Module

Instrução Property

Instrução Structure

Instrução Sub

Confira também