Statik Oluşturucular
Statik durumu tam olarak bir kez başlatın.
Statik Oluşturucular, CoddyKit'te ücretsiz bir C# Academy dersidir. Bu, 4 dersinin 4. 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 4 dersten oluşur.
Statik Oluşturucu Nedir
Bir statik oluşturucu, bir sınıfın statik verilerini başlatır. Sınıf ilk kez kullanılmadan önce otomatik olarak bir kez çalışır ve onu hiçbir zaman doğrudan çağırmazsınız.
using System;
class App
{
public static string Version;
static App()
{
Version = "1.0.0";
Console.WriteLine("Static constructor ran");
}
}
class Program
{
static void Main()
{
Console.WriteLine(App.Version);
}
}Sözdizimi Kuralları
Statik oluşturucu static anahtar sözcüğünü kullanır, sınıfın adına sahiptir, parametre almaz ve erişim değiştiricisi içermez.
using System;
class Config
{
public static int MaxUsers;
static Config()
{
MaxUsers = 100;
}
}
class Program
{
static void Main()
{
Console.WriteLine("Max: " + Config.MaxUsers);
}
}Tam Olarak Bir Kez Çalışır
Sınıfı kaç kez kullanırsanız kullanın, statik oluşturucu yalnızca gerektiği ilk anda bir kez çalışır.
using System;
class Counter
{
public static int Instances;
static Counter()
{
Console.WriteLine("Initializing static state");
Instances = 0;
}
public Counter() { Instances++; }
}
class Program
{
static void Main()
{
new Counter();
new Counter();
Console.WriteLine("Instances: " + Counter.Instances);
}
}Ne Zaman Tetiklenir
Çalışma zamanı, ilk statik üyeye erişilmeden veya ilk örnek oluşturulmadan hemen önce, hangisi önce gerçekleşirse, onu çağırır.
using System;
class Lazy
{
public static string Data;
static Lazy()
{
Console.WriteLine("Triggered now");
Data = "ready";
}
}
class Program
{
static void Main()
{
Console.WriteLine("Before access");
Console.WriteLine(Lazy.Data);
}
}Karmaşık Statik Verileri Başlatma
Statik alanların kurulması için yalnızca basit sabit değerler değil, gerçek bir mantık gerektiğinde statik oluşturucu kullanın.
using System;
using System.Collections.Generic;
class Lookup
{
public static Dictionary<int, string> Table;
static Lookup()
{
Table = new Dictionary<int, string>();
for (int i = 1; i <= 3; i++)
Table[i] = "Item" + i;
}
}
class Program
{
static void Main()
{
Console.WriteLine(Lookup.Table[2]);
}
}Statik Oluşturucu ile Alan Başlatıcısının Karşılaştırılması
Basit değerler satır içi başlatıcılarla kullanılabilir. Statik oluşturucu; deyimler, döngüler veya hata işleme gerektiren kurulumlar içindir.
using System;
class Settings
{
public static int Simple = 10; // inline initializer
public static int Computed; // needs logic
static Settings()
{
Computed = Simple * Simple;
}
}
class Program
{
static void Main()
{
Console.WriteLine(Settings.Simple + ", " + Settings.Computed);
}
}Parametre Kullanılamaz
Çalışma zamanı onu sizin için çağırdığı için statik oluşturucu bağımsız değişken kabul edemez. Tüm girdileri diğer statik veriler veya sabitler olmalıdır.
using System;
class Clock
{
public static int StartHour;
static Clock()
{
StartHour = 9;
}
}
class Program
{
static void Main()
{
Console.WriteLine("Start: " + Clock.StartHour);
}
}Statik ve Örnek Oluşturucuları Birleştirme
Bir sınıf her ikisine de sahip olabilir. Statik olan tür için bir kez, örnek olan ise her nesne için çalışır.
using System;
class Game
{
public static string Title;
public int Score;
static Game()
{
Title = "Coddy Quest";
}
public Game(int score)
{
Score = score;
}
}
class Program
{
static void Main()
{
var g = new Game(50);
Console.WriteLine(Game.Title + " score " + g.Score);
}
}Sıra Garantisi
Statik oluşturucunun, onu tetikleyen herhangi bir örnek oluşturucunun gövdesi çalışmadan önce tamamlanması garanti edilir; böylece statik state her zaman hazır olur.
using System;
class Service
{
public static string Endpoint;
static Service()
{
Endpoint = "https://api.example.com";
}
public Service()
{
Console.WriteLine("Using " + Endpoint);
}
}
class Program
{
static void Main()
{
new Service();
}
}Ölçülü Kullanın
Statik oluşturucular, sınıf kullanılmadan önce tek seferlik bir kontrol ekler; aşırı kullanıldıklarında veya hata oluşturduklarında performansı olumsuz etkileyebilirler. Bunları küçük ve güvenilir tutun.
using System;
class Cache
{
public static int[] Data;
static Cache()
{
Data = new int[] { 2, 4, 6, 8 };
}
}
class Program
{
static void Main()
{
Console.WriteLine(Cache.Data[3]);
}
}Hepsini Birleştirme
Statik oluşturucular, arama tabloları veya sabitlerden yüklenen yapılandırma gibi ortak, salt okunur verilerin tek seferlik kurulumu için idealdir.
using System;
using System.Collections.Generic;
class Currency
{
public static Dictionary<string, string> Symbols;
static Currency()
{
Symbols = new Dictionary<string, string>
{
["USD"] = "$",
["EUR"] = "E",
["JPY"] = "Y"
};
}
}
class Program
{
static void Main()
{
Console.WriteLine("USD symbol: " + Currency.Symbols["USD"]);
}
}Hızlı Kontrol
Statik oluşturucular hakkındaki anlayışınızı sınayın.
Özet
Bir statik oluşturucu, parametre ve erişim değiştiricisi olmadan static ClassName() kullanır. Gerçek bir mantık gerektiren statik state'i başlatmak için sınıf ilk kez kullanılmadan önce otomatik olarak bir kez çalışır. Ortak verilerin tek seferlik kurulumu için ölçülü kullanın.
using System;
class Demo
{
public static int Value;
static Demo() { Value = 42; }
}
class Program
{
static void Main()
{
Console.WriteLine(Demo.Value);
}
}Sıkça Sorulan Sorular
“Statik Oluşturucular” dersi ücretsiz mi?
Evet — “Statik Oluşturucular” 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 4 dersten oluşur.
“Statik Oluşturucular” dersinde ne öğreneceğim?
Statik durumu tam olarak bir kez başlatın. 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, 4 dersinin 4. dersidir.
“Statik Oluşturucular” 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
- Oluşturucuları Tanımlama
- this ile Oluşturucu Zincirleme
- Nesne ve Koleksiyon Başlatıcıları
- Statik Oluşturucular