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
Riferimenti
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#)
protected (Riferimenti per C#)