C# Academy · Ders

public/internal/protected/private (file hakkında notla)

public, internal, protected ve private erişim belirleyicilerinin görünürlüğü nasıl değiştirdiğini öğrenin; kalıtım ve aynı derleme birimi kurallarını görün. Dosya kapsamlı erişimin C# 6'da bulunmadığını unutmayın.

1. ders / 38 adım

public/internal/protected/private (file hakkında notla), CoddyKit'te ücretsiz bir C# Academy dersidir. Bu, 3 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C# Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C# Academy kursu toplamda 3 dersten oluşur.

Erişim değiştiricilerine genel bakış

Amaç: Doğru görünürlüğü seçmek.

  • genel: her yerde
  • internal: aynı derlemede
  • korumalı: türetilmiş sınıflar
  • özel: aynı sınıf
  • dosya: C# 6'dan daha yeni (yalnızca bilgi)

Özel ve genel karşılaştırması

Alanları özel tutun ve doğrulanmış genel üyeler sunun.

using System;

// private: only inside the class; public: everywhere the class is visible
public class Box
{
  private int _width;             // hidden storage
  public int Width                // controlled access
  {
    get { return _width; }
    set { _width = value < 0 ? 0 : value; } // simple guard
  }
}

public class Program
{
  public static void Main(string[] args)
  {
    Box b = new Box();
    // b._width = -5; // INVALID: private (kept as comment)
    b.Width = 10;      // OK: public property
    Console.WriteLine("Width = " + b.Width);
  }
}

Kalıtımda korumalı erişim

korumalı erişim kalıtım içindir: türetilmiş türler bunu kullanabilir, dışarıdakiler kullanamaz.

using System;

public class BaseCounter
{
  protected int Count; // derived classes can see this
  public int Value() { return Count; }
}

public class StepCounter : BaseCounter
{
  public void Step() { Count = Count + 1; } // allowed: protected
}

public class Program
{
  public static void Main(string[] args)
  {
    StepCounter sc = new StepCounter();
    sc.Step();
    // sc.Count = 5; // INVALID from outside (commented)
    Console.WriteLine("Value = " + sc.Value());
  }
}

internal erişimi

internal, görünürlüğü geçerli derlemeyle (kütüphane veya uygulama derlemesi) sınırlar.

using System;

// internal type: visible only inside this assembly
internal class InternalHelper
{
  public static string Ping() { return "pong"; }
}

// public type can use internal from the same assembly
public class UsesInternal
{
  public string Call() { return InternalHelper.Ping(); }
}

public class Program
{
  public static void Main(string[] args)
  {
    UsesInternal u = new UsesInternal();
    Console.WriteLine(u.Call());
  }
}

Korumalı internal erişim

korumalı internal şu anlama gelir: türetilmiş türler veya aynı derlemedeki herhangi bir kod erişebilir.

using System;

public class LibraryBase
{
  // Accessible to derived types OR anywhere in the same assembly
  protected internal void Touch() { Console.WriteLine("touched"); }
}

public class LibChild : LibraryBase
{
  public void Use() { Touch(); } // via inheritance
}

public class Program
{
  public static void Main(string[] args)
  {
    LibChild c = new LibChild();
    c.Use();

    LibraryBase b = new LibraryBase();
    b.Touch(); // same assembly, allowed
  }
}

Dosya değiştiricisi notu ve ipuçları

Not: dosya erişim değiştiricisi daha yeni C# sürümlerinde geldi (C# 6'da yoktur). C# 6 için genel, internal, korumalı, özel ve korumalı internal kullanın.

  • Varsayılan olarak özel erişimi tercih edin
  • genel erişimi yalnızca programlama arayüzü yüzeyi için kullanın
  • Uygulamayı diğer derlemelerden gizlemek için internal kullanın
  • Temel tür ile türetilmiş tür arasındaki iş birliği için korumalı kullanın

internal anlamı

Hızlı kontrol: C# dilinde internal erişim değiştiricisi ne anlama gelir?

Özet

Özet: Gereken en küçük görünürlüğü seçin: özel → korumalı/internal → genel. C# 6, daha yeni dosya değiştiricisini içermez; derleme düzeyinde gizleme için internal kullanın.

Başlamak ücretsiz

Yapay zeka eğitmeniyle C# öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
93
Dersler
346

Sıkça Sorulan Sorular

“public/internal/protected/private (file hakkında notla)” dersi ücretsiz mi?

Evet — “public/internal/protected/private (file hakkında notla)” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C# Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C# Academy kursu toplamda 3 dersten oluşur.

“public/internal/protected/private (file hakkında notla)” dersinde ne öğreneceğim?

public, internal, protected ve private erişim belirleyicilerinin görünürlüğü nasıl değiştirdiğini öğrenin; kalıtım ve aynı derleme birimi kurallarını görün. Dosya kapsamlı erişimin C# 6'da bulunmadığ… C# Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

C# Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te C# Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 3 dersinin 1. dersidir.

“public/internal/protected/private (file hakkında notla)” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu C# Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her C# Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. public/internal/protected/private (file hakkında notla)
  2. Ad alanları, using yönergeleri ve global using notu
  3. Kısmi türler ve dosyalar
← C# Academy Sayfasına Dön