2 Kasım 2015 Pazartesi

Delegate Kullanımı

Bugün iş dönüşünde radyodaki programı dinlerken aklıma bu yazıyı yazmak geldi. Radyodaki soru şuydu : "Kadınlar ne ister?". Tabi cevaplar oldukça enteresan ve bir hayli farklıydı. Bunun delegate ile ne alakası var diyebilirsiniz. Bende bilmiyorum içimden geldi :)

Delegate dediğimiz olay genel olarak temsilci tanımlamasıyla kullanılıyor. Ben ise onu herkesin isteklerine cevap vermeye çalışan bir amele olarak tanımlıyorum :) Çalışkandır delegate, garibandır delegate :) Neyse bu kadar geyik yeter. Bir bakalım neymiş bu delegate.

Alında benzer işlemleri bünyesinde toplayan ve bunları istediğiniz zaman teker teker çağırmaktan sizi kurtarandır delegate. Nasıl mı? Hemen gösterelim.

Ben bir windows form uygulamasında bunu göstereceğim. Formumda sadece bir adet listbox var. O da sonuçları göstermek için.

Delegatelerin bir püf noktası var onu söyleyeyim ilk olarak. Oluşturduğunuz metotla delegate'inizin yapısı aynı olmalı. Şimdi koda geçelim.

Delegate'imizi oluşturalım.

c# delegate
Şimdi delegateimizin çağıracağı metotlarımızı yazalım.

c# delegate
Gördüğünüz gibi delegatelerimiz ile metotlarımız string parametre alan ve geriye string döndüren yapıdalar. Bu metotlara girdikçe de listboxımıza kayıt atacaklar. Sırada tanımlamamız var.

c# delegate
Burada yaptığımız olay delegateimize teker teker metotlarımızı eklemek yani delegate çalıştığı anda eklediğimiz bu metotların hepsi çalışacak. Zaten bunu da birazdan listboxımızda göreceğiz. Burada önemli olan Invoke metodu. Invoke metoduyla uyuyan devi yani delegate'imizi uyandıracağız yani çalıştıracağız :) Invoke metoduna gönderdiğimiz parametre de her metoda aynı olarak gidecek. Sıra sonuçları görmeye geldi.

c# delegate

Delegate'e ekleme sıramıza göre metotlarımız çalıştı. Peki buna başka ne örnek yapabiliriz derseniz sisteme girilen bir paranın kayıt altına alınırken KDV'li ,KDV'siz ,stopajlı vs özelliklerini aynı anda kayıt altına alan bir yapı yapabilirsiniz. Haydi iyi akşamlar :)

Hiç yorum yok:

Yorum Gönder