Erişim değiştiricileri (kapsam belirleme kuralları olarak da bilinir), bir öğeye hangi kodun erişebileceğini belirler; Visual Basic'in önceki sürümlerinde, üç tür sınıf vardı. Bunlar .NET'e taşındı. Bunların her birinde, .NET yalnızca koda erişime izin verir:
- Özel - aynı modül, sınıf veya yapı içinde.
- Arkadaş - aynı meclis içinde.
- Genel - aynı projenin herhangi bir yerinde, projeye referans veren diğer projelerden ve projeden oluşturulan herhangi bir montajdan. Başka bir deyişle, onu bulabilen herhangi bir kod.
VB.NET bir buçuk yenisini de ekledi.
- korumalı
- Korumalı Arkadaş
"Yarısı", Korumalı Arkadaş'ın yeni Korumalı sınıf ve eski Arkadaş sınıfının bir birleşimi olmasıdır.
Korumalı ve Korumalı Arkadaş değiştiricileri gereklidir, çünkü VB.NET, VB'nin eksik olduğu son OOP gereksinimini uygular: miras.
VB.NET'ten önce, üstün ve küçümseyen C ++ ve Java programcıları VB'yi küçümseyecekti, çünkü onlara göre "tamamen nesne yönelimli değil". Neden? Önceki sürümlerde kalıtım yoktu. Kalıtım, nesnelerin arabirimlerini ve / veya uygulamalarını bir hiyerarşide paylaşmasına izin verir. Başka bir deyişle, kalıtım bir yazılım nesnesinin diğerinin tüm yöntemlerini ve özelliklerini üstlenmesini mümkün kılar.
Buna genellikle "is-a" ilişkisi denir.
- Bir kamyon "is-a" aracıdır.
- Bir kare "eşittir" şeklidir.
- Bir köpek "is-a" memelidir.
Buradaki fikir, daha genel ve yaygın olarak kullanılan yöntemlerin ve özelliklerin "ana" sınıflar olarak tanımlanması ve bunların "alt" sınıflarda (genellikle alt sınıflar olarak adlandırılır) daha spesifik hale getirilmesidir. "Memeli", "köpek" ten daha genel bir tanımdır. Balinalar memelidir.
En büyük yararı, kodunuzu düzenleyebilmenizdir, böylece yalnızca çok sayıda nesnenin üst öğede bir kez yapması gereken bir şey yapan kod yazmanız gerekir. Tüm "çalışanlar" a atanmış bir "çalışan numarası" olmalıdır. Daha spesifik kod, alt sınıfların bir parçası olabilir. Yalnızca genel ofiste çalışan çalışanların kendilerine atanmış bir çalışan kapı kartı anahtarı olması gerekir.
Ancak bu yeni miras kabiliyeti yeni kurallar gerektirir. Yeni bir sınıf eski bir sınıfı temel alıyorsa, Korumalı bu ilişkiyi yansıtan bir erişim değiştiricidir. Korumalı koda yalnızca aynı sınıftan veya bu sınıftan türetilmiş bir sınıftan erişilebilir. Çalışanların kapı kartı anahtarlarının çalışanlar dışında kimseye atanmasını istemezsiniz.
Belirtildiği gibi, Korumalı Arkadaş, hem Arkadaş hem de Korumalı erişiminin bir kombinasyonudur. Kod öğelerine türetilmiş sınıflardan veya aynı derlemeden veya her ikisinden erişilebilir. Korumalı Arkadaş, kodunuza erişen kodun yalnızca aynı derlemede olması gerektiğinden sınıf kitaplıkları oluşturmak için kullanılabilir.
Ancak Friend'in de bu erişimi var, neden Korumalı Arkadaş'ı kullanasın? Bunun nedeni Friend'in bir Kaynak dosyada kullanılabilmesidir, Ad alanı, Arayüz, Modül, Sınıf veya Yapı. Ancak Korumalı Arkadaş sadece bir Sınıfta kullanılabilir. Korumalı Arkadaş, kendi nesne kitaplıklarınızı oluşturmak için ihtiyacınız olan şeydir. Arkadaş sadece montaj geniş erişim gerçekten gerekli zor kod durumlar içindir.