C#

C# Access Modifier (Public, Private, Protected) Farkları

C# dilinde, Access Modifier (Erişim Belirleyici), bir sınıf, öğe veya üyenin dışarıdan erişilebilirliğini belirler. Access Modifier, bir sınıf, öğe veya üyenin ne şekilde ve hangi koşullarda kullanılabileceğini tanımlar.

C# dilinde kullanılabilecek Access Modifier'lar şunlardır:

public : Türe veya üyeye, aynı derlemedeki veya ona başvuran başka bir derlemedeki herhangi bir kodla erişilebilir. Bir türün genel üyelerinin erişilebilirlik düzeyi, türün erişilebilirlik düzeyi tarafından kontrol edilir.

private : Türe veya üyeye yalnızca aynı classveya içindeki kod ile erişilebilir struct. Eğer bir modifier yazmazsanız otomatik olarak private gibi davranır.

protected : Türe veya üyeye yalnızca aynı classveya classondan türetilen bir kodla erişilebilir class.

internal : Türe veya üyeye, aynı derlemedeki herhangi bir kodla erişilebilir, ancak başka bir derlemeden erişilemez. Başka bir deyişle, internaltürlere veya üyelere aynı derlemenin parçası olan koddan erişilebilir.

protected_internal : Türe veya üyeye, bildirildiği derlemedeki herhangi bir kodla veya başka bir derlemede türetilmiş bir koddan erişilebilir .

private protected : Türe veya üyeye , içerdiği derleme içinde bildirilenlerden türetilen türlerle erişilebilir .

Summary table

Caller's locationpublicprotected internalprotectedinternalprivate protectedprivate
Aynı class içinden✔️✔️✔️✔️✔️✔️
Türetilmiş sınıf (aynı derleme)✔️✔️✔️✔️✔️
Türetilmemiş sınıf (aynı derleme)✔️✔️✔️
Türetilmiş sınıf (farklı derleme)✔️✔️✔️
Türetilmemiş sınıf (farklı derleme)✔️



Daha detaylı bilgiye bruadan erişebilirsiniz: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/access-modifiers