c# KODLARI 

  •  

    STATİK ÜYELER ( Static Members )

Değişkenleri , event ve metodları vs. statik olarak tanımlayabiliriz. Statik üyeler sınıfla birlikte yüklenir ve uygulama sonlandırılana kadar yaşarlar.

Statik metodlara erişim

Statik metodlara sadece statik metodlardan erişebilir. Aşağıdaki Örneğimizde StatikMetod(), NormalMetod() 'a erişmeye çalıştığında hata oluşacaktır.

public class StatikOrnek
{
     public static void StatikMetod()
     {
         NormalMetod();
         //C# böyle bir tanıma izin vermez.
         //NormalMetod()' a erişebilmemiz için static tanımlanması gerekir.
     }
    
     public void NormalMetod()
     {
     }
 }

 

Statik yapılandırıcının çalışması (static constructor)

Statik yapılandırıcı tanımlarında, nesne kaç kere tanımlanırsa tanımlansın constructor sadece ilk nesnede bir kez çalıştırılır. Sınıfa ait instance oluşturulmasına gerek kalmadan çalışırlar.Aşağıdaki örneğimizde 1 adet statik ve 1 adet normal olmak üzere 2 adet constructor ve 2 adet değişken tanımladık. Static Constructor yalnızca 1 defa çalışırken normal constructor nesnenin her yaratılışında çalışır. Static değişkenimiz instance oluşturulup oluşturulmamasına bağımsız olarak artacaktır.

public static void Main()
{
     StatikOrnek2 instance1 = new StatikOrnek2();
     StatikOrnek2 instance2 = new StatikOrnek2();
     StatikOrnek2 instance3 = new StatikOrnek2();
 }

public class StatikOrnek2
{
    
     public static int staticSayac = 0;
     public int normalSayac = 0;
    
     static StatikOrnek2()
     {
         Console.WriteLine("Statik Constructor Çalıştı.");
     }
    
     public StatikOrnek2()
     {
         staticSayac++;
         normalSayac++;
         Console.WriteLine("Normal Constructor çalıştı.");
         Console.WriteLine("Statik Sayaç: {0}", staticSayac);
         Console.WriteLine("Normal Sayaç: {0}", normalSayac);
     }
 }
//Çıktı
//Statik Constructor Çalıştı.
//Normal Constructor çalıştı.
//Statik Sayaç: 1
//Normal Sayaç: 1
//Normal Constructor çalıştı.
//Statik Sayaç: 2
//Normal Sayaç: 1
//Normal Constructor çalıştı.
//Statik Sayaç: 3
//Normal Sayaç: 1