Toegangsmodificatoren (ook wel scopingregels genoemd) bepalen welke code toegang heeft tot een element, dat wil zeggen, welke code toestemming heeft om het te lezen of te schrijven. In eerdere versies van Visual Basic waren er drie soorten klassen. Deze zijn overgedragen naar .NET. In elk van deze geeft .NET alleen toegang tot code:
VB.NET heeft ook anderhalve nieuwe toegevoegd.
De "helft" komt omdat Protected Friend een combinatie is van de nieuwe Protected-klasse en de oude Friend-klasse.
De beschermde en beschermde vriendenmodificaties zijn noodzakelijk omdat VB.NET de laatste OOP-vereiste implementeert die VB ontbrak: Overerving.
Voorafgaand aan VB.NET, zouden supercilious en minachtende C ++ - en Java-programmeurs VB kleineren omdat het volgens hen "niet volledig objectgeoriënteerd" was. Waarom? Vorige versies misten erfenis. Door overerving kunnen objecten hun interfaces en / of implementatie in een hiërarchie delen. Met andere woorden, overerving maakt het mogelijk voor een softwareobject dat alle methoden en eigenschappen van een ander overneemt.
Dit wordt vaak de "is-een" relatie genoemd.
Het idee is dat meer algemene en algemeen gebruikte methoden en eigenschappen worden gedefinieerd als "bovenliggende" klassen en deze worden specifieker gemaakt in "onderliggende" klassen (vaak subklassen genoemd). "Zoogdier" is een meer algemene beschrijving dan "hond". Walvissen zijn zoogdieren.
Het grote voordeel is dat u uw code kunt ordenen, zodat u alleen code hoeft te schrijven die iets doet dat veel objecten één keer in de bovenliggende taak moeten doen. Aan alle "werknemers" moet een "werknemersnummer" worden toegewezen. Meer specifieke code kan deel uitmaken van de kindklassen. Alleen werknemers die op het algemene kantoor werken, moeten een deurpas voor medewerkers toegewezen krijgen.
Deze nieuwe overerving vereist echter nieuwe regels. Als een nieuwe klasse op een oude is gebaseerd, is Protected een toegangsmodificator die die relatie weerspiegelt. Beveiligde code is alleen toegankelijk vanuit dezelfde klasse of vanuit een klasse die is afgeleid van deze klasse. U wilt niet dat deurcodes voor werknemers aan iemand anders worden toegewezen dan aan werknemers.
Zoals opgemerkt, is Protected Friend een combinatie van de toegang van zowel Friend als Protected. Code-elementen kunnen worden benaderd vanuit afgeleide klassen of vanuit dezelfde assembly, of beide. Beschermde vriend kan worden gebruikt om klassenbibliotheken te maken, omdat code die toegang heeft tot uw code zich alleen in dezelfde vergadering hoeft te bevinden.
Maar Friend heeft die toegang ook, dus waarom zou je Protected Friend gebruiken? De reden is dat Friend kan worden gebruikt in een bronbestand, naamruimte, interface, module, klasse of structuur. Maar beschermde vriend kan alleen in een klas worden gebruikt. Beschermde vriend is wat je nodig hebt om je eigen objectbibliotheken te bouwen. Vriend is alleen voor moeilijke codesituaties waar assemblage brede toegang echt vereist is.