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.
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);
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. Cevapları Gizle