Adgangsmodifikatorer (også kaldet scoping-regler) bestemmer, hvilken kode der kan få adgang til et element - dvs. hvilken kode har tilladelse til at læse det eller skrive til det. I tidligere versioner af Visual Basic var der tre typer klasser. Disse er blevet videreført til .NET. I hver af disse tillader .NET kun adgang til kode:
- Privat - inden for det samme modul, klasse eller struktur.
- Ven - inden for samme samling.
- Offentligt - overalt i det samme projekt, fra andre projekter, der refererer til projektet, og fra enhver samling, der er bygget fra projektet. Med andre ord enhver kode, der kan finde den.
VB.NET har også tilføjet halvanden nye.
- Beskyttet
- Beskyttet ven
"Halvdelen" skyldes, at Protected Friend er en kombination af den nye Protected-klasse og den gamle Friend-klasse.
De beskyttede og beskyttede ven-modifikatorer er nødvendige, fordi VB.NET implementerer det sidste OOP-krav, som VB manglede: Arv.
Tidligere til VB.NET, ville overligne og foragtelige C ++ - og Java-programmerere nedbringe VB, fordi det ifølge dem var "ikke fuldt ud objektorienteret." Hvorfor? Tidligere versioner manglede arv. Arv giver objekter mulighed for at dele deres grænseflader og / eller implementering i et hierarki. Med andre ord gør arv det muligt for et softwareobjekt, der tager på sig alle metoderne og egenskaberne for et andet.
Dette kaldes ofte "er-et" -forholdet.
- En lastbil "er-et" køretøj.
- En firkantet "er-en" form.
- En hund "er-et" pattedyr.
Ideen er, at mere generelle og vidt anvendte metoder og egenskaber er definerede "overordnede" klasser, og disse gøres mere specifikke i "underordnede" klasser (ofte kaldet underklasser). "Pattedyr" er en mere generel beskrivelse end "hund." Hvaler er pattedyr.
Den store fordel er, at du kan organisere din kode, så du kun behøver at skrive kode, der gør noget, som mange objekter skal gøre en gang i forælderen. Alle "ansatte" skal have et "medarbejdernummer" tildelt dem. Mere specifik kode kan være en del af børneklasserne. Kun ansatte, der arbejder på det generelle kontor, skal have en medarbejderdørkortnøgle tildelt dem.
Denne nye arvemulighed kræver dog nye regler. Hvis en ny klasse er baseret på en gammel, er Protected en adgangsmodifikator, der reflekterer dette forhold. Beskyttet kode kan kun fås fra samme klasse eller fra en klasse, der stammer fra denne klasse. Du ønsker ikke, at medarbejderens dørkortnøgler tildeles nogen undtagen medarbejdere.
Som bemærket er Protected Friend en kombination af adgangen til både Friend og Protected. Kodeelementer kan fås enten fra afledte klasser eller fra den samme samling eller begge dele. Protected Friend kan bruges til at oprette biblioteker med klasser, da kode, der får adgang til din kode, kun skal være i samme samling.
Men Friend har også denne adgang, så hvorfor skulle du bruge Protected Friend? Årsagen er, at Friend kan bruges i en kildefil, navnerum, Interface, Modul, klasse eller struktur. Men Protected Friend kan kun bruges i en klasse. Protected Friend er det, du har brug for for at opbygge dine egne objektbiblioteker. Ven er bare til vanskelige kodesituationer, hvor der virkelig kræves samling af bred adgang.