CodeBlanks Logo Icon CodeBlanks

Static yapıcı ne zaman çalışır

C# kursu · Orta seviye · Ders 34/116

Static yapıcının ne zaman ve nasıl çalıştığını öğrenirsin.

Static yapıcı metot

Bir statik yapıcı (static constructor), sınıf ilk yüklendiğinde yalnızca bir kez çalışır. Parametre almaz ve erişim belirleyicisi olmaz. Tanımı: static Logger() { ... }.

Statik yapıcı, statik alanları ilk kullanımlarından önce hazırlar. Örnek: yapılandırma dosyasından değer okumak, önbellek kurmak veya sayaç sıfırlamak için uygundur. Sınıfın herhangi bir statik üyesine ilk erişimde veya ilk örnek üretiminde tetiklenir.

Statik yapıcı ne zaman çalışır?

Statik yapıcı, sınıfın ilk kullanımında otomatik tetiklenir. İlk statik alana erişim, ilk statik metot çağrısı veya ilk örnek üretimi buna dahildir.

Örnek: Logger.Count okunduğunda, henüz örnek üretilmemiş olsa bile statik yapıcı çalışır ve Count'u hazırlar. Statik yapıcının ne zaman çalışacağını kesin olarak kestirmek zor olabilir; bu yüzden yan etkilerden kaçınılmalıdır.

Uygulama Günlükleme sayacı

Logger sınıfına static Logger() yapıcısı ekle; gövdesi Count = 0; ataması yapsın. Main içinde Logger.Log("Başladı") çağırıp Logger.Count'u yazdır.

Örnek çözümü göster
Logger içine `static Logger() { Count = 0; }` ekle. Main içine `Logger.Log("Başladı"); Console.WriteLine(Logger.Count);` yaz.
Örnek çözüm:
using System;

class Logger
{
    public static int Count;

    static Logger()
    {
        Count = 0;
    }

    public static void Log(string message)
    {
        Count++;
        Console.WriteLine(message);
    }
}

class Program
{
    static void Main()
    {
        Logger.Log("Başladı");
        Console.WriteLine(Logger.Count);
    }
}

Kendini test et

  1. Eşleştir: statik yapıcı özellikleri

    parametre
    almaz
    erişim belirleyici
    yok
    çalışma sayısı
    bir kez
    tetiklenme
    ilk statik erişim
  2. Static yapıcı ile ilgili hangisi doğrudur?

    • Static yapıcı parametre alabilir.
    • Static yapıcı `public` olarak işaretlenir.
    • Static yapıcı yalnızca bir kez çalışır.
    • Static yapıcı örnek üretiminde çalışmaz.
    Cevabı göster

    Static yapıcı yalnızca bir kez çalışır. — Doğru. Statik yapıcı sınıf ömrü boyunca yalnızca bir kez çalışır.

  3. Boşluğu doldur: statik yapıcı tanımı

    class Logger
    {
        public static int Count;
    
        ____
        {
            Count = 0;
        }
    }
    Cevabı göster
    class Logger
    {
        public static int Count;
    
        static Logger()
        {
            Count = 0;
        }
    }

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