CodeBlanks Logo Icon CodeBlanks

Static readonly

C# kursu · Orta seviye · Ders 39/116

static readonly ile paylaşılan sabitler tanımlamayı öğrenirsin.

Static readonly

static readonly, sınıf seviyesinde paylaşılan ve çalışma zamanında belirlenen değişmez değerdir. Tanımı: public static readonly int Limit = 100;.

const'tan farkı: çalışma zamanı değeri alabilir (örneğin dosyadan okunan yapılandırma), değer tüketicilere gömülmez (sürümleme daha güvenli) ve yapıcı dahil herhangi bir statik bağlamda atanabilir. Örnek: public static readonly DateTime Epoch = new DateTime(1970,1,1);.

Ne zaman static readonly?

Değer çalışma zamanında belirleniyorsa ama yine de tüm örneklerle paylaşılıyorsa, static readonly doğru seçimdir. Örnek: uygulama başlatılırken dosyadan okunan varsayılan limit, hata kodları tablosu veya DateTime tabanlı sabitler.

Bu değerler const olamaz çünkü derleme zamanında bilinmezler. Örnek readonly ise her örneğin kendine bir kopyasını taşır; bu da israf olur. static readonly tek kopyayla tüm örneklere hizmet verir.

Uygulama Önbellek limiti

Cache sınıfına public static readonly int Limit = 100; alanını ekle. Main içinde Cache.Limit'i yazdır.

Örnek çözümü göster
Cache içine `public static readonly int Limit = 100;` ekle. Main içine `Console.WriteLine(Cache.Limit);` yaz.
Örnek çözüm:
using System;

class Cache
{
    public static readonly int Limit = 100;
}

class Program
{
    static void Main()
    {
        Console.WriteLine(Cache.Limit);
    }
}

Kendini test et

  1. static readonly ile ilgili hangisi doğrudur?

    • static readonly çalışma zamanında hesaplanan paylaşılan değişmez değer tutar.
    • static readonly derleme zamanında değer alır.
    • static readonly her örnekte farklı olabilir.
    • static readonly yapıcıda atanamaz.
    Cevabı göster

    static readonly çalışma zamanında hesaplanan paylaşılan değişmez değer tutar. — Doğru. static readonly çalışma zamanında belirlenen paylaşılan değişmez değerdir.

  2. Eşleştir: static readonly özellikleri

    paylaşım
    sınıf seviyesinde
    değer zamanı
    çalışma zamanı
    sürümleme
    güvenli
    örnek kopyası
    yok
  3. Boşluğu doldur: static readonly

    class Cache
    {
        public ____ int Limit = 100;
    }
    Cevabı göster
    class Cache
    {
        public static readonly int Limit = 100;
    }

Orta seviye bölümündeki tüm dersler