Physical Address

304 North Cardinal St.
Dorchester Center, MA 02124

Erişim Belirleyicilerini Uygulama

C# programlama dilinde erişim belirleyicileri (access modifiers), sınıf üyelerinin (alanlar, metotlar, özellikler vb.) ne kadar görünür veya erişilebilir olduğunu kontrol etmek için kullanılan yapılar olarak işlev görür. Bu belirleyiciler, sınıflarınızın, üyelerinizin ve diğer bileşenlerinizin dışarıdan nasıl erişilebileceğini düzenlemenize yardımcı olur.

public:

  • En geniş erişim belirleyicisidir.
  • Bir sınıf üyesi veya tipi, herhangi bir başka sınıf veya tip tarafından erişilebilir.
  • Diğer projeler veya bileşenler de dahil olmak üzere her yerden erişilebilir.

private:

  • En dar erişim belirleyicisidir.
  • Bir sınıf üyesi yalnızca kendi tanımlandığı sınıf içinden erişilebilir.
  • Diğer sınıflar veya bileşenler tarafından erişilemez.

protected:

  • Bir sınıf üyesi, kendi tanımlandığı sınıftan veya bunu kalıtım yoluyla türetilen alt sınıflardan erişilebilir.
  • Bu durum, farklı bir sınıfın nesnesiyle doğrudan erişim sağlamayı engeller.

internal:

  • Varsayılan olarak, bir sınıf üyesi veya tipi yalnızca aynı derleme (assembly) içinden erişilebilir.
  • Farklı derlemelerden (assembly) erişimi engellemek için kullanılır.

protected internal:

  • Hem protected hem de internal erişim belirleyicilerinin bir kombinasyonunu temsil eder.
  • Yani, aynı derleme içinde veya kalıtım yoluyla türetilen alt sınıflardan erişilebilir.

Aşağıda, bu erişim belirleyicilerini örneklerle açıklayalım:

using System;

class ParentClass
{
    public int PublicField;             // Her yerden erişilebilir.
    private int PrivateField;           // Yalnızca ParentClass içinden erişilebilir.
    protected int ProtectedField;       // ParentClass veya alt sınıflardan erişilebilir.
    internal int InternalField;         // Yalnızca aynı derleme içinden erişilebilir.
    protected internal int ProtIntField; // ParentClass veya alt sınıflarından, aynı derleme içinden erişilebilir.

    public void PublicMethod() { /* ... */ }
    private void PrivateMethod() { /* ... */ }
    protected void ProtectedMethod() { /* ... */ }
    internal void InternalMethod() { /* ... */ }
    protected internal void ProtIntMethod() { /* ... */ }
}

class ChildClass : ParentClass
{
    public void AccessProtected()
    {
        // ChildClass içinde ProtectedField'a erişebiliriz.
        ProtectedField = 10;
    }
}

class Program
{
    static void Main(string[] args)
    {
        ParentClass parent = new ParentClass();
        parent.PublicField = 5;          // Ulaşılabilir
        // parent.PrivateField = 5;      // Erişilemez (private)
        // parent.ProtectedField = 5;    // Erişilemez (protected)
        parent.InternalField = 5;        // Ulaşılabilir
        parent.ProtIntField = 5;         // Ulaşılabilir
    }
}

Erişim belirleyicileri, kodunuzun güvenliğini ve düzenini sağlamanıza yardımcı olur. Sınıf üyelerinin ne kadar görünür olması gerektiğini düşünerek, bu belirleyicileri akıllıca kullanmanız önemlidir.

“Yarın için endişelenmek yerine bugün için çalışın.” – Dale Carnegie

Bir sonraki yazıda görüşmek dileğiyle!”

Leave a Reply

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir


5 + 3 = ?