Kisa tanimiyla access modifiers yani erisim belirleyicileri bir sinif veya bir üyenin kodun baska kisimlari tarafindan erisilebilirligini yani görülebilirligini belirlemek için kullanilan anahtar kelimelerdir.
C#’ta dört farkli access modifier vardir. Bunlar public, protected, internal ve private anahtar kelimeleridir. Bir üye mutlaka bir access modifier’a sahip olmak zorundadir. Hiç birini kullanmadiginiz zaman varsayilan olarak private atamasi yapilir. protected ve private yalnizca üyeleri nitelemek için kullanilabilirlerken public ve internal üyelerle beraber siniflari da nitelemek için kullanilabilir. Diger bir deyisle protected ve private ile siniflari niteleyemezsiniz.
Erisim Seviyeleri
Bu dört farkli modifier’la bes farkli erisim seviyesi tanimlanabilir. Besinci seviye “protected internal” kombinasyonudur. protected internal kombinasyonu haricinde bir üye veya bir sinifi nitelemek içim yalnizca bir tek access modifier kullanilabilir. Harici bir kullanim bir derleme zamani hatasi olarak size dönecektir.
Bunlarin yaninda, access modifier’lar ad alanlari (namespace) üzerinde kullanilamazlar.
Asagidaki tablo herbir access modifier ve bunlarin tanimlarini içermektedir.
|
Access Modifier
|
Tanim
|
|
public
|
Sinirlama yok manasina gelir. Yani herhangi bir sinifin herhangi bir metodu public olarak tanimlanmis method ve alanlara erisebilirler.
|
|
private
|
Sinif içi erisime izin verir. Tanimin yapildigi sinifin disindaki hiç bir methodun, ki buna türetilen siniflar da dahildir, o alan veya methoda erismesine izin vermez.
|
|
protected
|
Bu private’in biraz daha genisletilmis bir seklidir. private’a ek olarak bu siniftan türetilmis siniflara da erisim izni verir.
|
|
internal
|
internalolarak tanimlanmis method ve alanlar yalnizca o sinifla beraber derlenmis siniflarin üyelerine açiktir.
|
|
protected internal
|
‘A’ sinifindaki internal protected olarak tanimlanmis üyeler A sinifinin ve A sinifindan türetilmis siniflarin methodlarina ve A sinifiyla beraber derlenmis her sinifa açiktirlar.
|