C Sharp’da Erişim Belirleyiciler
Herkese merhaba,
Bu yazıda C Sharp’da erişim belirleyiciler ile ilgili bilgi vermeye çalışacağım.
C Sharp’da 5 adet Erişim Belirleyici bulunur. Erişim Belirleyicilerin kapsamını en kısıtlayıcı olandan en genişine doğru “Private, Protected, Protected Internal, Internal ve Public” şeklide sıralayabiliriz.
C Sharp’da programlama dilinde oluşturulan uygulamaların güvenliğini artırmak için, kullanılan sınıfların (class) erişilebilirliğinin kısıtlanması gerekmektedir. Bu yüzden, Erişim Belirleyiciler koda dışardan yapılmak istenen müdahalenin sınırlarını belirlemek amacıyla kullanılan anahtar ifadelerdir.
Basit olarak Erişim Belirleyicileri aşağıdaki gibi özetleyebiliriz.
Public: Her yerden erişilebilir.
Private: Sadece tanımlandığı sınıf içerisinden erişilebilir.
Internal: Sadece bulunduğu proje içinde erişilebilir.
Protected: Sadece tanımlandığı sınıfta ya da o sınıfı miras alan sınıflardan erişilebilir.
Protected Internal: Sadece tanımlandığı sınıfta ya da o sınıfı miras alan sınıflardan erişilebilir. Ayrıca tanımlamanın aynı proje içerisinde olma şartı yoktur. Protected’dan farkı budur.
Eğer erişim belirleyici belirtilmemişse, Internal’dır.
Erişim belirleyiciler; program içerisinde tanımlanan değişkenlerin erişim sınırlarını belirler. C# diliyle yazılmış bir programda, tanımlanmış tüm varlıklara uygulanabilir. Buna class, struct (yapı), function (fonksiyon), method (metod) ve property (özellik) seviyesindeki tüm değişkenler dahildir.
Ayrıntılı açıklamak gerekirse Erişim Belirleyicileri aşağıdaki gibi açıklayabiliriz.
Private (Gizli)
Bir değerin Private olarak tanımlanması, o değere sadece kendi class’ı içinden ulaşılabileceği anlamına gelmektedir. Program içinde kesinlikle değiştirilmemesi gereken, kritik kodlarda kullanılmaktadır. Ayrıca; Private, varsayılan erişim belirleyici tipidir. Örneğin; “int deneme = 0;” gibi bir değişken tanımlandığında program tarafından deneme değeri Private olarak algılanmaktadır.
Public (Genel)
Bir değerin Public olarak belirtilmesi; o değerin, kod içinde herhangi bir yerden erişilebilir durumda olmasını sağlamaktadır. Public erişim belirleyici tipinde hiç bir kısıtlama yoktur.
Protected (Korunumlu)
Kod içinde bir değerin Protected olarak tanımlanması; o değere, bulunduğu class ve ondan türetilen diğer sınıflar içinden erişilebilir olduğunu göstermektedir. Protected; bir anlamda, public ve private erişim belirleyicilerinin birleşimi gibi görülebilir.
Internal (İçsel)
Internal olarak tanımlanan değere; aynı program içerisinden erişilebilir, fakat farklı bir program içerisinden erişilemez. Program içerisinde herhangi bir kısıtlaması yoktur.
Protected Internal (İçsel Korunumlu)
Protected Internal olarak tanımlanmış değer, tanımlandığı class’ın içinden ve ondan türetilen sınıfların içinden erişilebilir. Türetilen sınıfın aynı program içinde olmaması sorun teşkil etmez.
Yukarıdaki görsel ve aşağıdaki tablo yardımıyala Erişim Belirleyicilerin kapsamını daha net biçimde görebiliriz.
Access Modıfıer |
Aynı Assembly İçinden |
Farklı Assembly’ler İçinden |
|||
Tanımlandığı Sınıftan |
Diğer Sınıflardan |
Türetilmiş Sınıflardan |
Diğer Sınıflardan |
Türetilmiş Sınıflardan |
|
Private | Erişilebilir | Erişilemez | Erişilemez | Erişilemez | Erişilemez |
Public | Erişilebilir | Erişilebilir | Erişilebilir | Erişilebilir | Erişilebilir |
Protected | Erişilebilir | Erişilemez | Erişilebilir | Erişilemez | Erişilebilir |
Internal | Erişilebilir | Erişilebilir | Erişilebilir | Erişilemez | Erişilemez |
Protected Internal | Erişilebilir | Erişilebilir | Erişilebilir | Erişilemez | Erişilebilir |
Not : Class veya Struct’lar Public veya Internal tanımlanabilirler. Struct’lar inheritance’ı desteklemediği için Protected ve Protected internal tanımlanamazlar.
C Sharp’da Erişim Belirleyiciler ile anlatacaklarım bu kadar.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.