Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Usare i modificatori di accesso, public, protected, internalo privateper specificare uno dei livelli di accessibilità dichiarati seguenti per i membri.
| Accessibilità dichiarata | Significato |
|---|---|
public |
L'accesso non è limitato. |
protected |
L'accesso è limitato alla classe contenitore o ai tipi derivati dalla classe contenitore. |
internal |
L'accesso è limitato all'assemblaggio corrente. |
protected internal |
L'accesso è limitato all'assembly corrente o ai tipi derivati della classe contenitrice. |
private |
L'accesso è limitato al tipo contenitore. |
private protected |
L'accesso è limitato alla classe contenitrice o ai tipi derivati dalla classe contenitrice all'interno dell'assembly corrente. |
È consentito un solo modificatore di accesso per un membro o un tipo, tranne quando si usano le protected internal combinazioni o private protected .
I modificatori di accesso non sono consentiti per gli spazi dei nomi. Gli spazi dei nomi non hanno restrizioni di accesso.
A seconda del contesto in cui si verifica una dichiarazione di membro, sono consentite solo determinate accessibilità dichiarate. Se non viene specificato alcun modificatore di accesso in una dichiarazione membro, viene usata un'accessibilità predefinita.
I tipi di primo livello, che non sono annidati in altri tipi, possono avere internal solo o public accessibilità. L'accessibilità predefinita per questi tipi è internal.
I tipi annidati, che sono membri di altri tipi, possono avere accessibilità dichiarate come indicato nella tabella seguente.
| Membri di | Accessibilità dei membri predefinita | Accessibilità dichiarata consentita del membro |
|---|---|---|
enum |
public |
Nessuno |
class |
private |
publicprotectedinternalprivateprotected internal private protected |
interface |
public |
publicprotectedinternalprivate*protected internal private protected |
struct |
private |
publicinternalprivate |
* Un interface membro con private accessibilità deve avere un'implementazione predefinita.
Annotazioni
Se una classe o uno struct viene modificato con il modificatore di record parole chiave, sono consentiti gli stessi modificatori di accesso.
Inoltre, con il modificatore l'accessibilità record dei membri predefinita è ancora private per la classe e lo struct.
L'accessibilità di un tipo annidato dipende dal relativo dominio di accessibilità, determinato sia dall'accessibilità dichiarata del membro che dal dominio di accessibilità del tipo che lo contiene immediatamente. Tuttavia il dominio di accessibilità di un tipo annidato non può essere superiore a quello del tipo che lo contiene.
Specifiche del linguaggio C#
Per altre informazioni, vedere la specifica del linguaggio C#. La specifica del linguaggio costituisce il riferimento ufficiale principale per la sintassi e l'uso di C#.