C Sharp’da Erişim Belirleyiciler

C Sharp'da Erişim Belirleyiciler
C Sharp'da Erişim Belirleyiciler
Yazılım Kodu Kanalına Abone Olun

Herkese merhaba,

Bu yazıda C Sharp’da erişim belirleyiciler ile ilgili bilgi vermeye çalışacağım.

C Sharp'da Erişim Belirleyiciler

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.

C Sharp'da Erişim Belirleyiciler

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.

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

Aşağıdaki yazıları da inceleyebilirsiniz...

Sitedeki yazıları kopyalamak yasaktır.