Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
4
Cevap
534
Tıklama
0
Öne Çıkarma
C# da jenerikleri acikayabilir misiniz bir onekle ?
N
10 yıl (129 mesaj)
Çavuş
Konu Sahibi

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.

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



L
10 yıl (4928 mesaj)
Yarbay

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.


Bu mesaja 1 cevap geldi.
T
10 yıl (20069 mesaj)
Yarbay

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)
< Resime gitmek için tıklayın >
< Resime gitmek için tıklayın >


Bu mesaja 1 cevap geldi.
L
10 yıl (4928 mesaj)
Yarbay

Hata vermemesi için yorum satırı olarak ekledim kodu. // işaretlerini kaldırıp tekrar çalıştırmayı dene


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @revivo72
T
10 yıl (20069 mesaj)
Yarbay

a tamam şimdi oldu. gece yarısı kopyala yapıştırla kod denediğim için fark etmedim .)

< Resime gitmek için tıklayın >



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.