Partilhar via


Níveis de acessibilidade (referência a C#)

Use os modificadores publicde acesso , protected, internal, ou private para especificar um dos seguintes níveis de acessibilidade declarados para os membros.

Acessibilidade declarada Significado
public O acesso não é restrito.
protected O acesso é limitado à classe que contém ou tipos derivados da classe que contém.
internal O acesso é limitado ao assembly atual.
protected internal O acesso é limitado ao assembly atual ou aos tipos derivados da classe que contém.
private O acesso é limitado ao tipo que contém.
private protected O acesso é limitado à classe que a contém ou aos tipos derivados dessa classe dentro do conjunto atual.

Tipos de topo (não aninhados) podem usar o modificador de ficheiro . O file modificador restringe o acesso ao código no mesmo ficheiro fonte. Não podes combinar o file modificador com nenhum modificador de acesso.

Use apenas um modificador de acesso para um membro ou tipo, exceto quando usar as protected internal combinações de ou private protected .

Não uses modificadores de acesso em namespaces. Os namespaces não têm restrições de acesso.

Dependendo do contexto em que uma declaração de membro ocorre, apenas certas acessibilidades declaradas são permitidas. Se não especificar um modificador de acesso numa declaração de membro, é usada uma acessibilidade padrão.

Tipos de topo, que não estão aninhados noutros tipos, só podem ter internal acessibilidade public . A acessibilidade padrão para esses tipos é internal.

Os tipos aninhados, que são membros de outros tipos, podem ter acessibilidades declaradas conforme indicado na tabela a seguir.

Membros da Acessibilidade padrão para membros Permitida acessibilidade declarada do membro
enum public Nenhum
class private public

protected

internal

private

protected internal

private protected
interface public public

protected

internal

private*

protected internal

private protected
struct private public

internal

private

* Um interface membro com private acessibilidade deve ter uma implementação padrão.

Observação

Se modificares uma classe ou estrutura com o modificador de record palavra-chave, usa os mesmos modificadores de acesso. Além disso, com o record modificador, a acessibilidade padrão dos membros mantém-se private tanto para a classe como para a struct.

A acessibilidade de um tipo aninhado depende do seu domínio de acessibilidade, que determinam a acessibilidade declarada do membro e o domínio de acessibilidade do tipo que contém imediatamente. No entanto, o domínio de acessibilidade de um tipo aninhado não pode exceder o do tipo que contém.

Especificação da linguagem C#

Para obter mais informações, consulte a Especificação da Linguagem C# . A especificação da linguagem é a fonte definitiva para a sintaxe e o uso do C#.

Ver também