C# dilinde Erişim Belirleyiciler (Access Modifiers)

Eyl 06, 2013

C# 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 anlamda, erişim belirleyiciler (access modifiers) koda dışardan yapılmak istenen müdahalenin sınırlarını belirlemek amacıyla kullanılan anahtar ifadelerdir.

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. Genel olarak kullanım şekli aşağıdaki gibi gösterilebilir:

erişim_denetleyicisi  değişken_tipi değişken_adı = değişken_değeri;

Örneğin;
private int iSayi=10;

C# programlama dilinde tanımlanan erişim belirleyiciler:

  • Private (Gizli)
    Bir değerin private olarak tanımlanması demek, o değişkene 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 privateolarak 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 olarak görülebilmektedir.

  • Internal (İçsel)
    Internal olarak tanımlanan bir değer; aynı program içerisinden erişilebilir, fakat farklı bir program içerisinden erişilemez durumdadır. 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 durumdadır. Türetilen sınıfın aynı program içinde olmaması sorun teşkil etmez.