Sommario:
- Definizione - Cosa significano i modificatori di accesso?
- Techopedia spiega i modificatori di accesso
Definizione - Cosa significano i modificatori di accesso?
I modificatori di accesso sono parole chiave utilizzate per specificare l'accessibilità di una classe (o tipo) e dei suoi membri. Questi modificatori possono essere utilizzati dal codice all'interno o all'esterno dell'applicazione corrente.
I modificatori di accesso in .NET vengono utilizzati per controllare l'accessibilità di ciascuno dei membri di un tipo da diverse possibili aree di codice. Questo può essere gestito dall'interno dell'assieme corrente o dall'esterno. Un assembly rappresenta un'unità logica di funzionalità ed è costituito da tipi e risorse situati in uno o più file.
Lo scopo dell'utilizzo dei modificatori di accesso è implementare l'incapsulamento, che separa l'interfaccia di un tipo dalla sua implementazione. Con questo, si possono derivare i seguenti vantaggi:
- Prevenzione dell'accesso ai dati interni impostati dagli utenti allo stato non valido.
- Prevedere modifiche all'implementazione interna dei tipi senza influire sui componenti che lo utilizzano.
- Riduzione della complessità del sistema riducendo le interdipendenze tra i componenti software.
Techopedia spiega i modificatori di accesso
Il framework .NET offre un'opzione di avere cinque tipi di modificatori di accesso:
- Privato: il codice all'interno del tipo può accedere solo ai membri di quel tipo, e quindi l'accessibilità è limitata al tipo corrente
- Pubblico: il codice da qualsiasi punto all'interno dell'assembly corrente, o un altro assembly che fa riferimento a esso, può accedere ai membri del tipo e quindi consentire l'accessibilità da qualsiasi luogo
- Protetto: il codice all'interno del tipo o le sue classi derivate possono accedere ai membri del tipo e quindi l'accessibilità è limitata al tipo corrente e alle classi derivate
- Interno: il codice nell'assembly corrente, ma non da un altro assembly, può accedere ai membri del tipo, quindi l'accessibilità è limitata all'assembly corrente
- Il codice interno protetto nell'assieme corrente può accedere ai membri del tipo e anche dall'assieme che lo fa riferimento. Pertanto, l'accessibilità proviene da classi derivate nell'assembly corrente e deve avvenire tramite un'istanza di tipo di classe derivata nell'assembly che fa riferimento a esso
Esistono diverse regole che si applicano ai modificatori di accesso:
- Quando non è stato specificato alcun modificatore di accesso per digitare i membri, il livello di accesso predefinito è privato e interno.
- Non sono consentiti modificatori di accesso per gli spazi dei nomi, poiché sono pubblici.
- Le classi nidificate e i membri struct dichiarati all'interno di un tipo sono, per la classe contenente, privati per impostazione predefinita.
- I membri di Struct non possono essere dichiarati protetti poiché non supportano l'ereditarietà.
- I distruttori non possono avere modificatori di accesso.
- Il tipo derivato non può avere una maggiore accessibilità rispetto al suo tipo base.
- Il membro di un tipo contenente dovrebbe avere accessibilità inferiore a quello del suo tipo contenitore. Questo può essere illustrato con un esempio: un metodo pubblico in un tipo contenente non può avere "A" come parametro, se il tipo A non è visibile al pubblico.
- Le interfacce sono dichiarate pubbliche e interne e non possono avere altri modificatori di accesso, poiché le interfacce vengono utilizzate principalmente per l'accesso da parte delle classi.
- I modificatori di accesso vengono utilizzati non solo per i membri della classe, ma anche per altri costrutti di codice con la stessa intenzione.
