Merhaba arkadaşlar, başlatmış olduğumuz kod kütüphanesi projemize devam edeceğiz. Projeye devam etmeden önce, sınıf oluştururken dikkat etmemiz gereken bazı komutlardan bahsetmem gerekiyor.
Sınıflara daha doğrusu yapılara erişim izinlerini belirlemeden bahsedeceğiz. Erişim izni demek; Bir yapının veya metotlarının kim tarafından, nereden, nasıl bir şekilde erişilebilir olduğu, demektir.
Erişim izinlerini, yapıyı oluştururken static komutu gibi yapının türünün önüne izin komutunu kodlayarak belirliyoruz. Erişim izni mi yoksa yapının statik olduğunu belirleyen static komutu mu önce gelecek gibi bir soru kafanıza takılırsa hiç fark etmiyor arkadaşlar, static komutu veya erişim komutu da önce gelebilir. Dikkat etmemiz gereken yapının türünün yapı isminden önce gelmesi gerektiğidir.
Erişim İzinleri
1) Public
2) Private
3) Protected
4) Internal
5) Protecred Internal
Public
Public(tr:ortak) komutu yapıya her yerden erişime izin verir. Kısacası yapıya erişime hiçbir sınır getirilmemiştir.
Private
Private(tr:özel) komutu yapıya sadece o yapı içerisinden erişime izin verir. Mesela private “A” sınıfının public “B” metodunu sadece o sınıf içerisindeki “C” metodu kendi kodları içerisine çağırabilir. Başka bir yerden erişim olanaksızdır. C metodunun erişim izni belirlenmediği için private olarak kabul edilir. Private A sınıfı içinde bir de D metodu olduğunu düşünelim. D metodundan B metoduna erişim mümkündür. Fakat D metodundan C metoduna erişim mümkün değildir. C metoduna da erişimin mümkün olabilmesi için C’nin de public olarak belirlenmesi gerekir.
Protected
Protected(tr:korumalı) erişim türünde tanımlanmış üyelere tanımlandık sınıf ve bu sınıftan türetilmiş diğer sınıflardan erişim izni verilmiş olur.
Internal
Internal(tr:içerisi), yapıya aynı Assembly yani kütüphane içerisinde erişime izin verir. Classlar ya da structlar varsayılan olarak internal erişim iznine sahiptir.
Protected Internal
Protected ile internal komutlarının veya(“||”) komutu ile birleştirilmiş halidir. Yani protected ile internal birlikte kullanıla bilinir.
Erişim Kısıtlamalarını Neden Getiririz ?
Kullanıcının, metodumuza erişmesini istemeyebiliriz. Bunun bir sebebi olmasına gerek yok. Veya metot kullanışsızdır. “Kullanışsız ise neden kütüphanende kodladın ki bu metodu ?” diye soru soranlar olabilir. AsalMi metodundan örnek vereyim. Mesela AsalMi metodu gayet mantıklı bu yüzden bu metot kullanışsız değil. Ama çok gereksiz bir metot olduğunu düşünelim. AsalMi metodunu ilkel bir metot olsun. Yani asal sayıların 2’den başladığını bildiğimiz için metotta sayının 1’den büyük olup olmadığının kontrolünü (satır: [-T] > [01]) gereksiz görüp hızı arttırmak için kaldırabiliriz. Fakat kullanıcı buraya bir değişken atadığında programın hata verme olasılığı var. Erişim kısıtlaması da yapmasıydık. Kullanıcı bu gereksiz metoda ulaşır ve faydalı bir sonuç alamayınca da kütüphanemiz hakkında olumsuz fikirler besleyebilir. Bu olasılıklardan kurtulabilmek için AsalMi metodunu internal erişim izni ile oluştururuz.
Görüşmek üzere, iyi çalışmalar arkadaşlar…
Önerilen diğer yazılar:
NTP C# Dersi 12: Kütüphane(Class Library) Projesi
0 Yorum