C# 7.2 – Private Protected Access Modifier

Merhaba,

C#’ta erişim belirleyicileri hakkında C# Inheritance(Kalıtım,Miras) başlıklı yazımızda detaylı bir değerlendirmede bulunmuştuk. Bu erişim belirleyicilerinin yanına C# 7.2 versiyonu ile Private Protected access modifierı eklenmiş bulunmaktadır. Şimdi bu içeriğimizde yeni gelen Private Protected access modifier üzerine istişarelerimizi ediyor olacağız.

Öncelikle protected erişim belirleyicisini hatırlama mahiyetinde ele alalım.
Bir sınıf içerisinde protected olarak işaretlenen bir eleman sadece o sınıf içinden yahut o sınıftan kalıtım alan sınıflar içerisinden erişilebilir olmaktadır. Yani o classın instanceı için private, o sınıftan türeyen sınıfların ve o sınıf içinde ise public özellik göstermektedir.

private ise, işaretlenen elemanı sade ve sadece ilgili sınıf içerisinde public olarak göstermekte ve diğer sınıflar üzerinde yahut instanceında private olarak değerlendirmektedir.
C# 7.2 - Private Protected Access Modifier
Yukarıdaki ekran görüntüsünde görüldüğü üzere protected tanımlanan elemanlar ilgili sınıftan kalıtım alan sınıflar içerisinde public özelliği göstermektedir.

C# 7.2 - Private Protected Access Modifier C# 7.2 - Private Protected Access Modifier

Lakin yukarıda da gördüğünüz gibi ilgili sınıfların nesneleri üzerinden protected elemanlara erişilememekte çünkü önceden bahsettiğimiz gibi private özellik göstermektedirler.

Protected erişim belirleyicisi bir tek bulunduğu namespace içerisinde değil farklı namespacelerde de aynı işlevi görmektedir.
C# 7.2 - Private Protected Access Modifier
Görüldüğü üzere farklı bir namespace içerisinde bulunan “MyClass1” içerisindeki protected elemanlar kendisinden kalıtım alan “MyClass2” sınıfının içerisinde public özellik göstermektedirler.

Private Protected

Private Protected’a gelirsek eğer; bu erişim belirleyicisiyle işaretlenen elemanlar, protected oldukları için ilgili sınıftan türeyen sınıflardan erişilebilirken, private oldukları için sade ve sadece aynı assembly(namespace) içerisinden erişilebilecektirler. Yani private burada farklı bir namespaceler arasındaki protected elemanlara olan erişimi engellemektedir.

C# 7.2 - Private Protected Access Modifier
Gördüğünüz gibi farklı bir Class Library’de bulunan sınıf içerisindeki Private Protected erişim belirleyicili elemanımız o sınıftan kalıtım alan sınıfımız içerisinde Private özellik göstermiş bulunmaktadır. Halbuki Class Library içerisindeki farklı bir sınıf içinde bu işlemi yapsak aynı assembly içerisinde olduklarından dolayı ilgili elemana protected olduğundan dolayı erişilebilecektir.
C# 7.2 - Private Protected Access Modifier

Bu harika yenilik üzerine bu kadar değerlendirme yeterli sanırım.
Umarım faydalı ve anlaşılır bir içerik sunmayı başarabilmişimdir sizlere.

Sonraki yazılarımda görüşmek üzere…
İyi çalışmalar…

Bunlar da hoşunuza gidebilir...

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*

Copy Protected by Chetan's WP-Copyprotect.