Static readonly
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
-
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.
-
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
-
Boşluğu doldur: static readonly
class Cache { public ____ int Limit = 100; }Cevabı göster
class Cache { public static readonly int Limit = 100; }