Sommario:
Definizione - Cosa significa Membro inaccessibile?
Un membro inaccessibile, nel contesto di C #, è un membro a cui non è possibile accedere da un tipo specifico. Un membro inaccessibile a cui non è possibile accedere da un tipo può essere accessibile da un altro tipo.
Un membro inaccessibile può ottenere il livello di accessibilità che controlla il suo utilizzo da altro codice nell'assieme in cui viene dichiarato o da altri assiemi.
Un membro di un tipo è progettato per essere inaccessibile da determinati tipi ai fini dell'incapsulamento. L'incapsulamento dei dati aiuta a proteggere i dati all'interno dell'oggetto dalla corruzione accidentale, nonché a nascondere all'utente i dettagli di implementazione non necessari.
Techopedia spiega Membro inaccessibile
L'accessibilità di un membro di un tipo è determinata dal tipo in cui risiede e dal modificatore di accesso specificato durante la sua dichiarazione. Di seguito sono riportati i modificatori di accesso utilizzati per specificare l'accessibilità:
- Pubblico: accesso sia all'assembly corrente che a un assembly esterno che fa riferimento a esso.
- Privato: l'accesso è limitato al tipo contenente.
- Protetto: l'accesso è limitato alla classe o ai tipi contenenti derivati dal tipo contenente.
- Interno: l'accesso è limitato solo all'assembly corrente.
- Interno protetto: l'accesso è limitato all'assembly corrente o ai tipi derivati dalla classe contenente.
Ad esempio, un tipo può essere dichiarato con un metodo che ha un modificatore protetto in modo che sia inaccessibile al di fuori della classe ma accessibile alle sue classi derivate.
Non tutti i modificatori di accesso possono essere utilizzati in tutti i contesti da tutti i tipi. Quando un membro di un tipo non include un modificatore di accesso durante la sua dichiarazione, la sua accessibilità predefinita è privata.
Secondo il vincolo di accessibilità in C #, diversi costrutti richiedono che un tipo sia accessibile almeno quanto un membro o un altro tipo. Inoltre, se il membro è un metodo, un delegato o un indicizzatore, il tipo restituito e i tipi di parametro devono essere accessibili almeno quanto il membro stesso. L'uso di un membro inaccessibile si tradurrà in un errore di tempo di compilazione.