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:
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.
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.
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 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 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.


Erişim belirleyiciler hakkında bir örnek :
Erişim belirleyicinin ne olduğuna ve nasıl kullanıldıklarına kısaca değindim. Kod yazdıkça bu yapıları pratikte daha rahat anlayacaksınız .
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.


Erişim belirleyiciler hakkında bir örnek :
Kod:
class Erisim
{
private int tek; [COLOR="lime"]// private erişim açıktan belirtilir.[/COLOR]
int cift; [COLOR="lime"]// varsayılan erişim private tir.[/COLOR]
public int asal; [COLOR="lime"]// public erişim[/COLOR]
[COLOR="lime"]// Parametreyi değişkene atayan metod[/COLOR]
public **** SetTek (int a) {
tek = a;
}
[COLOR="lime"]// Değişkenin değerini döndüren metod[/COLOR]
public int GetTek()
{
return tek;
}
[COLOR="lime"]// Parametreyi değişkene atayan metod[/COLOR]
public **** SetCift(int a)
{
cift = a;
}
[COLOR="lime"]// Değişkenin değerini döndüren metod[/COLOR]
public int GetCift()
{
return cift;
}
}
class ErisimDemo
{
static **** Main()
{
Erisim e = new Erisim();
[COLOR="lime"]// Kendi sınıfındaki metotlar private değişkenleri kullanabilirler[/COLOR]
e.SetTek(3);
e.SetCift(16);
Console.WriteLine("Tek sayı: " + e.GetTek());
Console.WriteLine("Çift Sayı: " + e.GetCift());
[COLOR="lime"] // Private değişkenlere erişemeyiz
// e.tek = 5; // Erişim olmaz
// e.cift = 6; // Erişim olmaz[/COLOR]
[COLOR="lime"]// asal değişkeni public olduğu için erişebiliyoruz.[/COLOR]
e.asal = 7;
}
}
Erişim belirleyicinin ne olduğuna ve nasıl kullanıldıklarına kısaca değindim. Kod yazdıkça bu yapıları pratikte daha rahat anlayacaksınız .
Konunun yarısı alıntıdır .
İyi Forumlar ...
Son düzenleme:



