Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O nível de acesso de um elemento declarado é a extensão da capacidade de acessá-lo, ou seja, qual código tem permissão para lê-lo ou gravar nele. Isso é determinado não apenas pela forma como você declara o elemento em si, mas também pelo nível de acesso do contêiner do elemento. O código que não pode acessar um elemento independente não pode acessar nenhum de seus elementos contidos, mesmo aqueles declarados como Public
. Por exemplo, uma Public
variável em uma Private
estrutura pode ser acessada de dentro da classe que contém a estrutura, mas não de fora dessa classe.
Público
A palavra-chave Pública na instrução de declaração especifica que o elemento pode ser acessado do código em qualquer lugar do mesmo projeto, de outros projetos que fazem referência ao projeto e de qualquer assembly criado a partir do projeto. O código a seguir mostra uma declaração de exemplo Public
:
Public Class ClassForEverybody
Você só pode usar Public
no nível de módulo, interface ou namespace. Isso significa que você pode declarar um elemento público no nível de um arquivo de origem ou namespace ou dentro de uma interface, módulo, classe ou estrutura, mas não em um procedimento.
Protegido
A palavra-chave Protected na instrução de declaração especifica que o elemento só pode ser acessado de dentro da mesma classe ou de uma classe derivada dessa classe. O código a seguir mostra uma declaração de exemplo Protected
:
Protected Class ClassForMyHeirs
Você só pode usar Protected
no nível de classe e somente quando declara um membro de uma classe. Isso significa que você pode declarar um elemento protegido em uma classe, mas não no nível de um arquivo de origem ou namespace, ou dentro de uma interface, módulo, estrutura ou procedimento.
Amigo
A palavra-chave Friend na instrução de declaração especifica que o elemento pode ser acessado de dentro do mesmo assemblagem, mas não de fora do assemblagem. O código a seguir mostra uma declaração de exemplo Friend
:
Friend stringForThisProject As String
Você só pode usar Friend
no nível de módulo, interface ou namespace. Isso significa que você pode declarar um elemento amigo no nível de um arquivo de origem ou namespace ou dentro de uma interface, módulo, classe ou estrutura, mas não em um procedimento.
Amigo Protegido
A combinação de palavras-chave Friend Protegido na instrução de declaração especifica que o elemento pode ser acessado nas classes derivadas, no mesmo assembly ou em ambos. O código a seguir mostra uma declaração de exemplo Protected Friend
:
Protected Friend stringForProjectAndHeirs As String
Você só pode usar Protected Friend
no nível de classe e somente quando declara um membro de uma classe. Isso significa que você pode declarar um elemento amigo protegido em uma classe, mas não no nível de um arquivo de origem ou namespace, ou dentro de uma interface, módulo, estrutura ou procedimento.
Privado
A palavra-chave Privada na instrução de declaração especifica que o elemento só pode ser acessado de dentro do mesmo módulo, classe ou estrutura. O código a seguir mostra uma declaração de exemplo Private
:
Private _numberForMeOnly As Integer
Você só pode usar Private
no nível do módulo. Isso significa que você pode declarar um elemento privado dentro de um módulo, classe ou estrutura, mas não no nível de um arquivo de origem ou namespace, dentro de uma interface ou em um procedimento.
No nível do módulo, a instrução Dim
sem palavras-chave de nível de acesso é equivalente a uma Private
declaração. No entanto, talvez você queira usar a Private
palavra-chave para facilitar a leitura e a interpretação do código.
Protegido de forma particular
A combinação de palavras-chave Private Protected na instrução de declaração especifica que o elemento só pode ser acessado de dentro da mesma classe, bem como de classes derivadas encontradas no mesmo assembly que a classe que contém. O Private Protected
modificador de acesso tem suporte a partir do Visual Basic 15.5.
O exemplo a seguir mostra uma Private Protected
declaração:
Private Protected internalValue As Integer
Você pode declarar um Private Protected
elemento somente dentro de uma classe. Você não pode declará-lo dentro de uma interface ou estrutura, nem pode declará-lo no nível de um arquivo de origem ou namespace, dentro de uma interface ou uma estrutura, ou em um procedimento.
O Private Protected
modificador de acesso é compatível com o Visual Basic 15.5 e posterior. Para usá-lo, adicione o seguinte elemento ao arquivo do projeto do Visual Basic (*.vbproj). Desde que o Visual Basic 15.5 ou posterior esteja instalado em seu sistema, ele permite que você aproveite todos os recursos de idioma compatíveis com a versão mais recente do compilador do Visual Basic:
<PropertyGroup>
<LangVersion>latest</LangVersion>
</PropertyGroup>
Para usar o Private Protected
modificador de acesso, você deve adicionar o seguinte elemento ao arquivo do projeto do Visual Basic (*.vbproj):
<PropertyGroup>
<LangVersion>15.5</LangVersion>
</PropertyGroup>
Para obter mais informações, consulte como definir a versão do idioma do Visual Basic.
Modificadores de acesso
As palavras-chave que especificam o nível de acesso são chamadas de modificadores de acesso. A tabela a seguir compara os modificadores de acesso:
Modificador de acesso | Nível de acesso concedido | Elementos que você pode declarar com esse nível de acesso | Contexto de declaração no qual você pode usar esse modificador |
---|---|---|---|
Public |
Irrestrito: Qualquer código que possa ver um elemento público pode acessá-lo |
Interfaces Módulos Aulas Estruturas Membros da estrutura Procedimentos Propriedades Variáveis de membro Constantes Enumerações Eventos Declarações externas Delegados |
Arquivo de origem Namespace Interfase Módulo Classe Estrutura |
Protected |
Derivacional: O código na classe que declara um elemento protegido ou uma classe derivada dele pode acessar o elemento |
Interfaces Aulas Estruturas Procedimentos Propriedades Variáveis de membro Constantes Enumerações Eventos Declarações externas Delegados |
Classe |
Friend |
Assembléia: O código no assembly que declara que um elemento friend pode acessá-lo |
Interfaces Módulos Aulas Estruturas Membros da estrutura Procedimentos Propriedades Variáveis de membro Constantes Enumerações Eventos Declarações externas Delegados |
Arquivo de origem Namespace Interfase Módulo Classe Estrutura |
Protected
Friend
|
União de Protected e Friend :O código na mesma classe ou no mesmo assembly que um elemento friend protegido ou em qualquer classe derivada da classe do elemento pode acessá-lo |
Interfaces Aulas Estruturas Procedimentos Propriedades Variáveis de membro Constantes Enumerações Eventos Declarações externas Delegados |
Classe |
Private |
Contexto da declaração: O código no tipo que declara um elemento privado, incluindo código dentro de tipos contidos, pode acessar o elemento |
Interfaces Aulas Estruturas Membros da estrutura Procedimentos Propriedades Variáveis de membro Constantes Enumerações Eventos Declarações externas Delegados |
Módulo Classe Estrutura |
Private Protected |
Código em uma classe que declara um elemento protegido privado, ou código em uma classe derivada encontrada no mesmo assembly que a classe base. | Interfaces Aulas Estruturas Procedimentos Propriedades Variáveis de membro Constantes Enumerações Eventos Declarações externas Delegados |
Classe |