5. Erişim Belirleyiciler

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:

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 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 olarak görülebilmektedir.

Internal (İçsel)
Internal olarak tanımlanan bir değer; aynı program içerisinden, bağlı bulunduğu assembly (dll, exe) içinden 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.  Aynı ya da farklı assembly’ler içinde olması farketmeksizin sadece kendi sınıfından kalıtılmış sınıflar içerisinden erişilebilir.