VuePressVuePress
Home
Get Started
Home
Get Started
  • Temel Kavramlar

    • Type Declarations (Tur Bildirimleri)
    • Access Modifiers (Erişim Değiştiricileri)
    • Erişimci (Accessor)
  • Metotlar ve İşlemler

    • Metotlar (Methods)
    • Geri Dönüş Türleri (Return Types)
    • Try-Catch Kullanımı
  • Veri Yapıları

    • Koleksiyon Arayüzleri (Collection Interfaces)
    • LINQ Sorguları
  • İleri Konular

    • Dependency Injection Servisleri
    • DbContext - OnModelCreating Metodu
  • DbContext ve Entity Framework

    • Entity Framework Core - Fluent API ve İlişkiler Rehberi

Access Modifiers (Erişim Değiştiricileri)

Nedir?

Access Modifiers, sınıfların, metotların ve özelliklerin erişim seviyesini belirleyen anahtar kelimelerdir.

Çeşitleri

1. public - Herhangi bir yerden erişilebilir

public class MyClass { }
public void PublicMethod() { }

2. private - Sadece sınıf içinden erişilebilir

private int _value;
private void PrivateMethod() { }

3. protected - Sınıf ve alt sınıflardan erişilebilir

protected void ProtectedMethod() { }

4. internal - Aynı proje içinden erişilebilir

internal class InternalClass { }

5. protected internal - Proje içi + Alt sınıflar

protected internal void Method() { }

6. private protected - Aynı proje içindeki alt sınıflar

private protected void Method() { }

Çeşitleri ve Kullanımları

1. public

  • Erişim: Herhangi bir yerden erişilebilir
  • Kapsam: Proje içi ve dışı
  • Kullanım: API'ler, genel metotlar
public class MyClass
{
    public void PublicMethod()
    {
        // Herhangi bir yerden çağrılabilir
    }
}

2. private

  • Erişim: Sadece tanımlandığı sınıf içinden erişilebilir
  • Kapsam: Sınıf içi
  • Kullanım: İç implementasyon detayları
  • Default: Sınıf üyeleri için varsayılan değer
public class MyClass
{
    private int _internalValue;
    
    private void PrivateMethod()
    {
        // Sadece bu sınıf içinden çağrılabilir
    }
}

3. protected

  • Erişim: Tanımlandığı sınıf ve türetilen sınıflardan erişilebilir
  • Kapsam: Sınıf + Alt sınıflar
  • Kullanım: Kalıtım için gerekli üyeler
public class BaseClass
{
    protected void ProtectedMethod()
    {
        // Sınıf ve alt sınıflardan erişilebilir
    }
}

public class DerivedClass : BaseClass
{
    public void CallProtected()
    {
        ProtectedMethod(); // Erişilebilir
    }
}

4. internal

  • Erişim: Aynı assembly (proje) içinden erişilebilir
  • Kapsam: Proje içi
  • Kullanım: Proje içi yardımcı sınıflar
  • Default: Sınıflar için varsayılan değer
internal class InternalClass
{
    internal void InternalMethod()
    {
        // Aynı proje içinden erişilebilir
    }
}

5. protected internal

  • Erişim: Aynı assembly içinden VEYA türetilen sınıflardan erişilebilir
  • Kapsam: Proje içi + Alt sınıflar (diğer projelerde)
  • Kullanım: Kütüphanelerde kalıtım için
public class BaseClass
{
    protected internal void ProtectedInternalMethod()
    {
        // Aynı proje içinden veya alt sınıflardan erişilebilir
    }
}

6. private protected (C# 7.2+)

  • Erişim: Aynı sınıf içinden VEYA aynı assembly'deki türetilen sınıflardan
  • Kapsam: Sınıf + Aynı proje içindeki alt sınıflar
  • Kullanım: Çok nadir kullanım
public class BaseClass
{
    private protected void PrivateProtectedMethod()
    {
        // Sadece aynı proje içindeki alt sınıflardan erişilebilir
    }
}

Karşılaştırma Tablosu

ModifierAynı SınıfAynı ProjeAlt Sınıf (Aynı)Alt Sınıf (Farklı)Dış Proje
public✓✓✓✓✓
private✓✗✗✗✗
protected✓✓✓✓✗
internal✓✓✗✗✗
protected internal✓✓✓✓✗
private protected✓✓✓✗✗

En İyi Uygulamalar

  • Encapsulation: Varsayılan olarak private kullanın
  • Gerekli olduğunda açın: Sadece gerekli üyeleri public yapın
  • Kalıtım: Alt sınıflar için protected kullanın
  • Proje içi: internal ile proje içi yardımcıları gizleyin
Last Updated:: 6/7/26, 12:33 PM
Contributors: yigitumretastan
Prev
Type Declarations (Tur Bildirimleri)
Next
Erişimci (Accessor)