Yazarlar Sözlük Makaleler Yardım Masası Gözlük Forum İstatistik

Tüm Başlıklar XML

1.  (ing) statik, duragan, degismeyen.

OOP'da bir sinif, sinif (class) degiskenine ve/veya ornek (instance) degiskenine sahip olabilir. Sinif degiskenleri sinif üzerinden erisilebilen degiskenler iken, ornek degiskenleri ornek üzerinden erisilebilir.

Örnegin;

class Kisi
{
   public string Ad;                 // ornek degiskeni
   public static int KisiSayisi = 0; // sinif degiskeni

   public Kisi(string ad)
   {
      this.Ad = ad;
      KisiSayisi++; // this.KisiSayisi++ yazilamaz. Cunkü this bir ornek belirtir.
   }
}
..
Kisi k = new Kisi("Ahmet");
Console.WriteLine( k.Ad );            // Ahmet yazar.
Console.WriteLine( Kisi.KisiSayisi ); // 1 yazar. k degil Kisi kullaniyoruz.
Console.WriteLine( Kisi.Ad );         // yanlis! Ad degiskeni sinif degiskeni degil.
Console.WriteLine( k.KisiSayisi );    // yanlis! KisiSayisi ornek degiskeni degil.

Not 1: static degiskenlerle ilgili thread-safe olmama problemi vardir.
Not 2: static metodlar da olabilir.
fizikci
30 Mayıs 2005 23:42
2.  static tanımlanmış sınıf değişkenlerine veya metodlarına sınıfın instanceı oluşturulmadan da ulaşılıp kullanılabilir. sınıf oluştururken static bir metod yazmışsak ve class değişkenlerinden biri de bu metod ile kullanılıyorsa, kullanılan değişkenin de static olması gerekir. şöyleki

class Kisi{
    public string Ad;
    public string Soyad;

    public static string Isim(){
        return Ad + " " + Soyad; // hata alıcaz, çünkü Ad ve soyad değişkeni de static olmalı.
    }
}


class Kisi{
    public static string Ad;
    public static string Soyad;

    public static string Isim(){
        return Ad + " " + Soyad; // doğru çalışır.
    }
}

bateristt
31 Mayıs 2005 00:50
3.  C dilini geliştiren adamlardan biriyle yapılmış bir röportajda okumuştum. Bu static'in çok hatalı kullanıldığından yakınıyodu. :-)
TomC
01 Haziran 2005 15:30
Bu konuda bildiklerinizi bizlerle paylaşabilirsiniz
Tabi bunun için yazarsanız giriş yapmalı, yazar değilseniz yazar olmalısınız.


Bu başlığa bkz veren girişlerin başlıkları nedir?

Bu başlığa bkz veren girişler başka hangi başlıklara bkz verdiler?
© 2005, Bilişim Kulübü. (1375 ms)
Ne yapabilirsin: SubtitleClick ile İngilizceni Geliştir, Çınar Framework ile kod yaz, Eglencelik.org'ta biraz eğlen