1. Ana Sayfa
  2. C#
  3. C# Generic Yapılar: Generic’de Neyin Nesi?

C# Generic Yapılar: Generic’de Neyin Nesi?

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:

  1. Önceden kısık ateşte hazırladığımız bardak sınıfından bir örnek nesne (instıns) çıkartılır.
  2. Ö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ı https://forum.mshowto.org linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.

Referanslar

www.mshowto.org

Yorum Yap

Yazar Hakkında

1982 İstanbul doğumluyum. Programcılık hayatıma 1993 yılında yeşil monitörlü Amstrad makineye sağdan soldan bulduğum Basic kodlarını yazmaya çalışırken başlamış oldum. Halkla İlişkiler bölümü ön lisans, İşletme bölümü lisans ve Bilgisayar Mühendisliği bölümü yüksek lisanslarına sahibim. Eğitim hayatım boyunca mesleğimle ilgili çok sayıda sertifika edindim ve birçok kurumsal şirkette yazılım geliştirme uzmanı olarak çalıştım. Şu an Bilge Adam bünyesinde kıdemli yazılım geliştirme uzmanı olarak çalışıyorum. Motorsiklet tutkunuyum, snowboardsız bir hayat düşünemiyorum.

Yorum Yap

Yorumlar (3)

  1. 4 sene önce

    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..

  2. 3 sene önce

    Sayfa sonuna verdiğiniz link uçmuş, irfan boyutuna erişemedik 🙂

  3. Link kırılmış 😀