Livelli di accessibilità (Riferimenti per C#)

Aggiornamento: novembre 2007

Utilizzare i modificatori di accesso public, protected, internal o private per specificare una delle seguenti accessibilità dichiarate per i membri.

Accessibilità dichiarata

Significato

public

Nessuna restrizione di accesso.

protected

L'accesso è limitato alla classe di appartenenza o ai tipi derivati dalla classe di appartenenza.

internal

L'accesso è limitato all'assembly corrente.

protectedinternal

L'accesso è limitato all'assembly corrente o ai tipi derivati dalla classe di appartenenza.

private

L'accesso è limitato al tipo di appartenenza.

È consentito utilizzare un solo modificatore di accesso per un membro o un tipo, tranne nel caso in cui si utilizzi la combinazione protectedinternal.

I modificatori di accesso non sono utilizzabili sugli spazi dei nomi, i quali non presentano restrizioni di accesso.

A seconda del contesto in cui si verifica la dichiarazione di un membro, sono consentite solo determinate accessibilità dichiarate. Se nella dichiarazione di un membro non è stato specificato alcun modificatore di accesso, verrà utilizzato un valore di accessibilità predefinito.

I tipi di primo livello, non nidificati in altri tipi, possono disporre solo di un'accessibilità di tipo internal o public. L'accessibilità predefinita per questi tipi è internal.

I tipi nidificati, che sono membri di altri tipi, possono avere le accessibilità dichiarate elencate nella tabella seguente.

Membro di

Accessibilità predefinita del membro

Accessibilità dichiarata consentita per il membro

enum

public

Nessuno

class

private

public

protected

internal

private

protectedinternal

interface

public

Nessuno

struct

private

public

internal

private

L'accessibilità di un tipo nidificato dipende dal dominio di accessibilità, che varia a seconda dell'accessibilità dichiarata del membro e del dominio di accessibilità del tipo che lo contiene direttamente. Tuttavia il dominio di accessibilità di un tipo nidificato non può essere superiore a quello del tipo che lo contiene.

Specifiche del linguaggio C#

Per ulteriori informazioni, vedere le sezioni riportate di seguito in Specifiche del linguaggio C#:

  • 3.5.1 Accessibilità dichiarata

  • 3.5.3 Accesso protetto per i membri di istanza

  • 3.5.4 Vincoli di accessibilità

  • 10.3.5 Modificatori di accesso

  • 10.3.8.2 Accessibilità dichiarata

Vedere anche

Concetti

Guida per programmatori C#

Riferimenti

Parole chiave di C#

Modificatori di accesso (Riferimenti per C#)

Dominio di accessibilità (Riferimenti per C#)

Restrizioni relative all'utilizzo dei livelli di accessibilità (Riferimenti per C#)

Modificatori di accesso (Guida per programmatori C#)

public (Riferimenti per C#)

private (Riferimenti per C#)

protected (Riferimenti per C#)

internal (Riferimenti per C#)

Altre risorse

Riferimenti per C#