12 Temmuz 2017 Çarşamba

C# Sorusu: Delege (Delegate), Olay (Event) ve Metot (Method)

Facebook üzerinde cevapladığım bir soruyu başkalarına da faydalı olabileceğini düşünerek burada da paylaşıyorum.

SORU:
İkisi arasındaki fark nedir?
> MyEvent += new MyDel(MyMethod);
> MyEvent += MyMethod;

CEVAP:
C# dilinde bu iki kullanım arasında fark yok.

İlk kullanım, nizami bir kullanım şeklidir. Metodu temsil edecek bir delege örnekleniyor ve olaya bağlanıyor.

Alttaki yazım şekli ile de aynı şeyi yapıyoruz. Bu kullanım derleyici tarafından üstteki gibi derlenecektir. Bir nevi kısa yazım şekli gibi düşünülebilir. Olayda kullanılan delegenin imzası ile olaya bağlanmak istenen metodun imzası aynı olduğu sürece derleyici delegeyi örnekleyecek şekilde işlem yapılmasını sağlayacaktır.

Yani; ikinci kullanım, daha az tuş basımı, daha sade, daha anlaşılır ve rahat okunabilir bir kod yazımı sağlayarak aynı işlevselliği sunuyor.

Hiç yorum yok: