Büyük üstadlar üstad olana kadar çok satır kod yazdılar. Yazdıkça gördüler ki aynı kod bloğunu her ihtiyacı oldukları yerlerde ufak tefek modifikasyonlardan geçirip tekrar tekrar kullanıyorlar. Ayrıca casting, boxing-unboxing operasyonları yapmaktan uygulamanın response zamanı Harem-Sirkeci feribotu seferiyle aynı süreye denk geliyor. Dediler ki bu iş böyle olmaz, gelin beyler kafa kafaya verip adımızı tarihe yazalım. Yıl 1999, dün gibi hatırlıyorum :)
Uzun süren toplantılar, beyin fırtınaları, araştırmalar, küfür kıyamet derken nihayet 2005 yılında .NET Framework 2.0 versiyonu ile Generic Mimarisi hayatımıza girmiş oldu.
“Yukarıdaki cümleye katılmıyorum, genericler hayatıma girmedi, asla da giremeyecek” diyorsanız;
Yanılıyorsunuz :) Tabi zorla güzellik olmaz. Aşağıda okuyacağınız üç paragraf generic yapılarıyla ilgilenip, ilgilenmeyeceğinize dair kendinizi kandırmadan cevap verebilmenizi sağlayacak.
Resim-1
Şimdi kupa bardağımıza iyi bakın arkadaşlar, şaşı bak şaşır yapıyoruz :) Hemen bardak sınıfını zihninizde canlandırın. Yükseklik, çap, renk, ağırlık propertylerini tanımladınız bile… Bir de buna Doldur() fonksiyonu ekledik mi fevkalenin fevkinde olacak. Buraya kadar sıkıntı yok, peki Doldur fonksiyona parametre olarak ne verip, bardağı neyle doldururdunuz?
Verilecek cevap basit: Bardağı sıvı olan herhangi bir şeyle doldurabiliriz. Çay, kahve, ayran, kola, cappuccino, oralet, bira, su vs…. Zaten sıvı olmayan şeylerle doldurmak isteseydim kova sınıfını tasarladım öyle değil mi?
Normal Şartlar Altında bardağımızı şöyle dolduruyoruz:
- Önceden kısık ateşte hazırladığımız bardak sınıfından bir örnek nesne (instıns) çıkartılır.
- Örnek nesnenin Doldur fonksiyonu çağırılarak, bardak ne ile dolacaksa ilgili parametre verilir.
Resim-2
Bakınız Doldur fonksiyonum 16 çeşit parametre alacak şekilde tasarlanmış. Önceden neyi tanımladıysam onunla bardağı doldurabiliyorum. Çok iyi, hatta mühendislik harikası… Yalnız şöyle bir sıkıntı var:
16 çeşit yerine 124 çeşit parametre tipim olsaydı bu tiplere özel kod yapılarını parmaklarımın ucundaki deriyi eritip kemiğimi dışarını fırlatana kadar (iğrencim kabul) klavyeyle mi boğuşacaktım yoksa burayı tıklayarak irfan boyutunda huzura mı erecektim :)
Bu konuyla ilgili sorularınızı alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.
Referanslar
Merhabalar;
Makalenizin sonuna kadar okudum fakat burayı tıklayın dedğiniz yerde “Maalesef, aradığınız sayfa bu blogda yok.” mesajı çıkıyor. Çok iyi örnekler vererek açıklamışsınız fakat çeşke devamını görebilsek..
Sayfa sonuna verdiğiniz link uçmuş, irfan boyutuna erişemedik :)
Link kırılmış :D
Anlatım kesinlikle çok iyi ama keşke link uçmasaydı :)
İrfan boyutu biraz hayal oldu gibi