Şimdi Ara

C# da jenerikleri acikayabilir misiniz bir onekle ?

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
5
Cevap
1
Favori
371
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • cok karmasik geldi ? kodla aciklayabilecek arkadas var mi ?

    genel bir obje olur deniyor, ve daha guvenli koruma yapilamaktadir deniyor...

    anlamadim ne alaka ? veri tipi obje olunca sistem bunun tipini string mi int mi nasil ayirt ediyor ?

    tesekkurler.



  • Jeneriklerin bi faydasını açıklayayım, bunun dışında dile birçok yerde etkisi var tabi ki.

     
    ArrayList eskiList = new ArrayList();
    eskiList.Add("Donanım");
    eskiList.Add("Haber");

    // string dh = eskiList[0] + eskiList[1]; bu satır hata verecek çünkü arraylist içindeki her şeyin türü "object"
    string dh = (string)eskiList[0] + (string)eskiList[1];
    Console.WriteLine(dh);

    List<string> list = new List<string>();
    list.Add("Donanım");
    list.Add("Haber");
    dh = list[0] + list[1];
    Console.WriteLine(dh);


    Kodda görüldüğü gibi object'ten string'e cast işlemi yapmak zorunda kalıyoruz. Ayrıca ArrayList içersindeki elemanların string olma zorunluluğu yok. Biz casting işlemi yaparken içersinden int bile çıkabilir ve runtime'da hata alırız. Jenerikler compile time kontrolü sağlıyor böylece yapılan hata oranını düşürüyor. Ayrıca performansı da olumlu etkiliyor.




  • quote:

    Orijinalden alıntı: Lilpackage

     
    ArrayList eskiList = new ArrayList();
    eskiList.Add("Donanım");
    eskiList.Add("Haber");

    [b]// string dh = eskiList[0] + eskiList[1]; bu satır hata verecek çünkü arraylist içindeki her şeyin türü "object"[/b]
    string dh = (string)eskiList[0] + (string)eskiList[1];
    Console.WriteLine(dh);

    List<string> list = new List<string>();
    list.Add("Donanım");
    list.Add("Haber");
    dh = list[0] + list[1];
    Console.WriteLine(dh);


    Kodu derledim hata verecek dediğin satır hata vermedi.
    Kullandığım derleyici Mono (gmcs)
     C# da jenerikleri acikayabilir misiniz bir onekle ?
     C# da jenerikleri acikayabilir misiniz bir onekle ?




  • Hata vermemesi için yorum satırı olarak ekledim kodu. // işaretlerini kaldırıp tekrar çalıştırmayı dene
  • a tamam şimdi oldu. gece yarısı kopyala yapıştırla kod denediğim için fark etmedim .)

     C# da jenerikleri acikayabilir misiniz bir onekle ?
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.