Οι τροποποιητές πρόσβασης (που ονομάζονται επίσης κανόνες οριοθέτησης) καθορίζουν ποιος κώδικας μπορεί να αποκτήσει πρόσβαση σε ένα στοιχείο - δηλαδή, ποιος κώδικας έχει την άδεια να το διαβάσει ή να γράψει σε αυτόν. Σε προηγούμενες εκδόσεις της Visual Basic, υπήρχαν τρεις τύποι μαθημάτων. Αυτά έχουν μεταφερθεί στο .NET. Σε κάθε ένα από αυτά, το .NET επιτρέπει πρόσβαση μόνο στον κώδικα:
- Ιδιωτικό - μέσα στην ίδια ενότητα, κλάση ή δομή.
- Φίλος - στο ίδιο συγκρότημα.
- Δημόσιο - οπουδήποτε στο ίδιο έργο, από άλλα έργα που αναφέρουν το έργο και από οποιαδήποτε συναρμολόγηση που κατασκευάζεται από το έργο. Με άλλα λόγια, οποιοσδήποτε κώδικας μπορεί να το βρει.
VB.NET έχει επίσης προσθέσει ενάμισι καινούργιο.
- Προστασία
- Προστατευμένος φίλος
Το "μισό" είναι επειδή ο προστατευμένος φίλος είναι ένας συνδυασμός της νέας τάξης Protected και της παλιάς τάξης Friend.
Οι τροποποιητές προστατευμένου και προστατευόμενου φίλου είναι απαραίτητοι επειδή το VB.NET εφαρμόζει την τελευταία απαίτηση OOP ότι η VB λείπει: Κληρονομία.
Πριν από το VB.NET, οι υπερήφανοι και περιφρονητικοί προγραμματιστές C ++ και Java θα υποτιμούσαν τη VB, επειδή ήταν, σύμφωνα με αυτούς, "όχι πλήρως προσανατολισμένες προς το αντικείμενο". Γιατί; Οι προηγούμενες εκδόσεις δεν είχαν κληρονομικότητα. Η κληρονομιά επιτρέπει στα αντικείμενα να μοιράζονται τις διεπαφές τους και / ή την υλοποίησή τους σε μια ιεραρχία. Με άλλα λόγια, η κληρονομιά καθιστά δυνατό για ένα αντικείμενο λογισμικού που λαμβάνει όλες τις μεθόδους και τις ιδιότητες ενός άλλου.
Αυτό ονομάζεται συχνά η σχέση "είναι-α".
- Ένα φορτηγό "είναι ένα" όχημα.
- Ένα τετράγωνο "είναι-ένα" σχήμα.
- Ένα σκυλί "είναι ένα" θηλαστικό.
Η ιδέα είναι ότι οι γενικότερες και ευρέως χρησιμοποιούμενες μέθοδοι και ιδιότητες ορίζονται ως κλάσεις "γονέων" και αυτές γίνονται πιο συγκεκριμένες σε κατηγορίες "παιδιών" (συχνά αποκαλούμενες υποκατηγορίες). Το "θηλαστικό" είναι μια γενικότερη περιγραφή από το "σκυλί". Οι φάλαινες είναι θηλαστικά.
Το μεγάλο όφελος είναι ότι μπορείτε να οργανώσετε τον κωδικό σας, ώστε να γράφετε μόνο κώδικα που κάνει κάτι που πολλά αντικείμενα πρέπει να κάνουν μία φορά στον γονέα. Όλοι οι "υπάλληλοι" πρέπει να έχουν έναν "αριθμό εργαζομένων" που τους έχει ανατεθεί. Ο πιο συγκεκριμένος κώδικας μπορεί να είναι μέρος των τάξεων των παιδιών. Μόνο οι εργαζόμενοι που εργάζονται στο γενικό γραφείο πρέπει να έχουν ένα κλειδί κάρτας πόρτας των εργαζομένων που τους έχει ανατεθεί.
Αυτή η νέα ικανότητα κληρονομίας απαιτεί όμως νέους κανόνες. Εάν μια νέα κλάση βασίζεται σε μια παλιά, η Protected είναι ένας τροποποιητής πρόσβασης που αντανακλά αυτή τη σχέση. Ο προστατευμένος κώδικας μπορεί να προσπελαστεί μόνο μέσα από την ίδια τάξη ή από μια τάξη που προέρχεται από αυτή την τάξη. Δεν θέλετε τα κλειδιά της κάρτας πόρτας των εργαζομένων να εκχωρούνται σε οποιονδήποτε εκτός από τους υπαλλήλους.
Όπως σημειώνεται, ο Προστατευόμενος φίλος είναι ένας συνδυασμός της πρόσβασης τόσο του φίλου όσο και του προστατευόμενου. Τα στοιχεία του κώδικα μπορούν να προσεγγιστούν είτε από παράγωγες κλάσεις είτε από το ίδιο συγκρότημα ή και από τα δύο. Ο προστατευμένος φίλος μπορεί να χρησιμοποιηθεί για τη δημιουργία βιβλιοθηκών κλάσεων, αφού ο κώδικας που έχει πρόσβαση στον κωδικό σας πρέπει να βρίσκεται μόνο στην ίδια συστοιχία.
Αλλά ο φίλος έχει επίσης αυτή την πρόσβαση, οπότε γιατί θα χρησιμοποιούσατε τον προστατευμένο φίλο; Ο λόγος είναι ότι ο φίλος μπορεί να χρησιμοποιηθεί σε αρχείο πηγής, Ο χώρος ονομάτων, Διεπαφή, Μονάδα, Κλάση ή Δομή. Αλλά ο προστατευμένος φίλος μπορεί να χρησιμοποιηθεί μόνο σε μια τάξη. Ο προστατευμένος φίλος είναι αυτό που χρειάζεστε για να φτιάξετε τις δικές σας βιβλιοθήκες αντικειμένων. Ο φίλος σας είναι απλά για δύσκολες καταστάσεις κώδικα, όπου απαιτείται ευρεία πρόσβαση στη συναρμολόγηση.