Venn og beskyttet venn i VB.NET

click fraud protection

Tilgangsmodifiserere (også kalt omfangsregler) bestemmer hvilken kode som har tilgang til et element - det vil si hvilken kode som har tillatelse til å lese det eller skrive til det. I tidligere versjoner av Visual Basic var det tre typer klasser. Disse er blitt videreført til .NET. I hver av disse gir .NET bare tilgang til kode:

  • Privat - innenfor samme modul, klasse eller struktur.
  • Venn - innenfor samme forsamling.
  • Offentlig - hvor som helst i det samme prosjektet, fra andre prosjekter som refererer til prosjektet, og fra enhver samling som er bygget fra prosjektet. Med andre ord, hvilken som helst kode som kan finne den.

VB.NET har også lagt til halvannen nye.

  • beskyttet
  • Beskyttet venn

"Halvparten" skyldes at Protected Friend er en kombinasjon av den nye Protected-klassen og den gamle Friend-klassen.

Beskyttede og beskyttede venn-modifikatorer er nødvendige fordi VB.NET implementerer det siste OOP-kravet om at VB manglet: Arv.

Tidligere til VB.NET, ville umådelige og foraktelige C ++ - og Java-programmerere nedbringe VB fordi det ifølge dem var "ikke fullstendig objektorientert." Hvorfor? Tidligere versjoner manglet arv. Arv gjør at objekter kan dele sine grensesnitt og / eller implementering i et hierarki. Med andre ord, arv gjør det mulig for ett programvareobjekt som tar på seg alle metodene og egenskapene til et annet.

instagram viewer

Dette kalles ofte "er-et" -forholdet.

  • En lastebil "er-et" kjøretøy.
  • En firkantet "er-en" form.
  • En hund "er-et" pattedyr.

Tanken er at mer generelle og mye brukte metoder og egenskaper er definerte "overordnede" klasser og disse blir gjort mer spesifikke i "barn" klasser (ofte kalt underklasser). "Pattedyr" er en mer generell beskrivelse enn "hund." Hvaler er pattedyr.

Den store fordelen er at du kan organisere koden din slik at du bare trenger å skrive kode som gjør noe som mange objekter må gjøre en gang hos foreldrene. Alle "ansatte" må ha et "ansattnummer" tildelt dem. Mer spesifikk kode kan være en del av barneklassene. Bare ansatte som jobber på hovedkontoret trenger å ha en ansattes dørkortnøkkel tildelt dem.

Denne nye muligheten til arv krever imidlertid nye regler. Hvis en ny klasse er basert på en gammel, er Protected en tilgangsmodifiserer som gjenspeiler det forholdet. Beskyttet kode kan bare nås fra samme klasse, eller fra en klasse hentet fra denne klassen. Du vil ikke at ansattes dørkortnøkler skal tilordnes noen unntatt ansatte.

Som nevnt er Protected Friend en kombinasjon av tilgangen til både Friend og Protected. Du kan få tilgang til kodeelementer fra avledede klasser eller fra samme samling, eller begge deler. Protected Friend kan brukes til å opprette biblioteker med klasser siden kode som får tilgang til koden din bare må være i samme samling.

Men Friend har også den tilgangen, så hvorfor vil du bruke Protected Friend? Årsaken er at Friend kan brukes i en kildefil, namespace, Grensesnitt, Modul, klasse eller struktur. Men Protected Friend kan bare brukes i en klasse. Protected Friend er det du trenger for å bygge dine egne objektbiblioteker. Friend er bare for vanskelige kodesituasjoner der montering av bred tilgang virkelig er nødvendig.

instagram story viewer