Güvenlik vb. çeşitli sebeplerle nesnelerimizin dışarıdan erişilmesini veya erişilmemesini isteyebiliriz. Bu tarz yetkilendirme işlemlerini C# dilinde erişim belirleyiciler (access modifiers) ile sağlanmaktadır. Erişim belirleyiciler C# üzerinde tanımlanmış tüm nesnelere uyarlanabilir. (değişkenler, classlar, methodlar vb.)
Private
Bir nesne private olarak tanımlandığında sadece kendi kod bloğu içerisinden çağrılabilir. Güvenlik nedeniyle dışarıya kesinlikle açmamamız gereken nesnelerde kullanılır.
Public
Bir nesne public olarak tanımlandığında hiç bir kısıtlaması olmaz. Yani hem kendi kod bloğu üzerinden hem de dışarıdan hatta farklı projeler üzerinden dahi çağırılabilir.
Internal
Kendi projesi içerisinde public, farklı bir projeden/dışarıdan çağırılmak istenildiğinde ise private özelliklerini taşır. Yani aynı Assembly (dll) üzerinde istediğiniz şekilde kullanabilirsiniz ancak dışarıdan (farklı bir projeden) çağıramazsınız.
Protected
Bir nesne protected olarak tanımlandığında yalnızca bulunduğu class üzerinde ve bu class ı miras alan (bu class’tan türetilmiş) classlar üzerinden çağırılabilir.
Proteced Internal
Bir nesne protected internal olarak tanımlandığında aynı protected gibi kendi bulunduğu class üzerinde ve bu class ı miras alan classlar üzerinden çağrılabilir. Artı olarak aynı proje (assembly/dll) üzerinde olmasalar dahi, tanımlandığı class’tan türetilmiş diğer class’ların içinden de çağırılabilirler.
Özel bir durum olmadıkça varsayılan olarak değişkenler ve methodlar private, classlar ise internal dır.
Proteced Internal tanımlamasında “miras” yazılacağına “misas” yazmışsınız bilginize
Düzenledim, teşekkürler.
Çok değerli bir çalışma olmuş.