Inhoudsopgave:
Definitie - Wat betekent Access Modifiers?
Toegangsmodificeerders zijn sleutelwoorden die worden gebruikt om de toegankelijkheid van een klasse (of type) en zijn leden te specificeren. Deze modificatoren kunnen worden gebruikt vanuit code binnen of buiten de huidige toepassing.
Toegangsmodificatoren in .NET worden gebruikt om de toegankelijkheid van elk van de leden van een type vanuit verschillende mogelijke codegebieden te regelen. Dit kan vanuit het huidige samenstel of daarbuiten worden afgehandeld. Een merk vertegenwoordigt een logische eenheid van functionaliteit en bestaat uit typen en bronnen die zich in een of meer bestanden bevinden.
Het doel van het gebruik van toegangsmodificatoren is om inkapseling te implementeren, die de interface van een type scheidt van zijn implementatie. Hiermee kunnen de volgende voordelen worden afgeleid:
- Preventie van toegang tot de interne gegevens die door gebruikers in ongeldige staat is gezet.
- Voorziening voor wijzigingen in de interne implementatie van de typen zonder de componenten die deze gebruiken te beïnvloeden.
- Vermindering van de complexiteit van het systeem door de onderlinge afhankelijkheden tussen softwarecomponenten te verminderen.
Techopedia legt Access Modifiers uit
Het .NET-framework biedt een optie voor vijf typen toegangsmodificatoren:
- Privé - code binnen het type heeft alleen toegang tot de leden van dat type en daarom is de toegankelijkheid beperkt tot het huidige type
- Openbaar - code van overal in de huidige assembly of een andere assembly die ernaar verwijst, heeft toegang tot de leden van het type en biedt daarom overal toegang
- Beschermd - code binnen het type of de afgeleide klassen ervan heeft toegang tot de leden van het type en daarom is de toegankelijkheid beperkt tot het huidige type en afgeleide klassen
- Intern - code in het huidige merk, maar niet van een ander merk, heeft toegang tot de leden van het type, daarom is de toegankelijkheid beperkt tot het huidige merk
- Beschermde intern - code in de huidige assembly heeft toegang tot de leden van het type en ook van de assembly die ernaar verwijst. De toegankelijkheid is dus afkomstig van afgeleide klassen in de huidige assembly en moet plaatsvinden via een instantie van een afgeleid klassetype in de assembly waarnaar wordt verwezen
Er zijn verschillende regels die van toepassing zijn op de toegangsmodificatoren:
- Als er geen toegangsmodificator is opgegeven om leden te typen, is het standaardtoegangsniveau privé en intern.
- Er zijn geen toegangsmodificatoren toegestaan voor naamruimten, omdat deze openbaar zijn.
- De geneste klassen en struct-leden die binnen een type zijn gedeclareerd, zijn standaard voor de betreffende klasse privé.
- Struct-leden kunnen niet als beschermd worden aangemerkt, omdat het geen overname ondersteunt.
- Destructors kunnen geen toegangsmodificaties hebben.
- Afgeleid type kan geen grotere toegankelijkheid hebben dan het basistype.
- Het lid van een bevattende soort moet minder toegankelijk zijn dan die van het bevattende type. Dit kan worden geïllustreerd met een voorbeeld: een openbare methode in een bevattend type kan "A" niet als parameter hebben als type A niet zichtbaar is voor het publiek.
- Interfaces worden openbaar en intern verklaard en kunnen geen andere toegangsmodificatoren hebben, omdat interfaces voornamelijk worden gebruikt voor toegang door klassen om hiervan af te leiden.
- Toegangsmodificatoren worden niet alleen gebruikt voor leden van de klas, maar ook voor andere codeconstructies met dezelfde intentie.