Tillgångsmodifierare (även kallad scoping-regler) avgör vilken kod som har åtkomst till ett element - det vill säga vilken kod som har tillåtelse att läsa det eller skriva till det. I tidigare versioner av Visual Basic fanns det tre typer av klasser. Dessa har överförts till .NET. I vart och ett av dessa tillåter .NET endast åtkomst till kod:
- Privat - inom samma modul, klass eller struktur.
- Vän - inom samma församling.
- Offentligt - var som helst i samma projekt, från andra projekt som refererar till projektet och från alla enheter som byggts från projektet. Med andra ord någon kod som kan hitta den.
VB.NET har också lagt till en och en halv ny.
- Skyddade
- Skyddad vän
"Halvan" beror på att Protected Friend är en kombination av den nya Protected-klassen och den gamla Friend-klassen.
De skyddade och skyddade vänmodifierarna är nödvändiga eftersom VB.NET implementerar det sista OOP-kravet att VB saknades: Arv.
Tidigare till VB.NET skulle överlägsna och föraktliga C ++ - och Java-programmerare minska VB eftersom det enligt dem var "inte helt objektorienterade." Varför? Tidigare versioner saknade arv. Arv gör det möjligt för objekt att dela sina gränssnitt och / eller implementering i en hierarki. Med andra ord gör arv det möjligt för ett programobjekt som tar på sig alla metoder och egenskaper hos ett annat.
Detta kallas ofta "is-a" -förhållandet.
- En lastbil är ett fordon.
- En fyrkantig "är-en" form.
- En hund "är-ett" däggdjur.
Tanken är att mer allmänna och allmänt använda metoder och egenskaper definieras som "föräldraklasser" och dessa görs mer specifika i "barn" -klasser (ofta kallade underklasser). "Däggdjur" är en mer allmän beskrivning än "hund." Valar är däggdjur.
Den stora fördelen är att du kan organisera din kod så att du bara behöver skriva kod som gör något som många objekt måste göra en gång i föräldern. Alla "anställda" måste ha ett "anställdsnummer" tilldelat dem. Mer specifik kod kan ingå i barnklasserna. Endast anställda som arbetar på det allmänna kontoret behöver ha en anställds dörrkortsnyckel tilldelad dem.
Denna nya förmåga till arv kräver dock nya regler. Om en ny klass bygger på en gammal klass är Protected en åtkomstmodifierare som återspeglar det förhållandet. Skyddad kod kan endast nås från samma klass eller från en klass härledd från denna klass. Du vill inte att anställdas dörrkortsnycklar tilldelas någon annan än anställda.
Som noterats är Protected Friend en kombination av tillgången till både Friend och Protected. Kodelement kan nås antingen från härledda klasser eller från samma enhet, eller båda. Protected Friend kan användas för att skapa klasser bibliotek eftersom kod som har åtkomst till din kod endast måste vara i samma enhet.
Men Friend har också åtkomst, så varför skulle du använda Protected Friend? Anledningen är att Friend kan användas i en källfil, namespace, Gränssnitt, Modul, klass eller struktur. Men Protected Friend kan bara användas i en klass. Protected Friend är det du behöver för att bygga dina egna objektbibliotek. Friend är bara för svåra kodesituationer där montering av bred åtkomst verkligen krävs.