C# programlama dilinde delegate konusuna giriş yapmıştık, ancak sadece anonymous function ve lambda ifadeleri ile kullanımlarına bakmıştık. Delegate'lerin asıl kullanışlı oldukları işlemlerin Event (Olay) kullanımı ile birlikte olabildiğinden bahsetmiştik ve bu yazıda da C# ile delegate ve event kullanımlarını göreceğiz.
bkz: C# Delegate Nedir? C# Delegate Kullanımı ve Örnekleri
bkz: C# Anonymous Methods Kullanımı ve Örnekleri (İsimsiz Metodlar)
bkz: C# Lambda ifadeleri kullanımı ve örnekleri
Event (olay), arayüze sahip uygulamalarda sıklıkla kullandığımız işlevlerdir. Örneğin youtube'da play butonuna basmak bir olaydır, ya da bir telefon uygulamasında bir butona basmak yine bir olaydır ve bu işlem sonucunda uygulamanın verdiği reaksiyon da event sonucu çalışan kodların çıktısıdır. Event'ler programlama dillerinde bize aşağıdaki faydaları sağlarlar:
- Daha temiz kod yazımı
- Nesneler arası iletişim
- talep göndericisini dinleyebilmek
Bu noktada bir event'in bir delegate ile oluşturulması şu şekilde olabilir:
public delegate void ArabaCalistiEventHandler (object source, EventArgs args);
public event ArabaCalistiEventHandler ArabaCalisti;
Şimdi araba çalıştırıldığında gerçekleşmesini istediğimiz işlemleri bir metod içerisinde yazalım ve event'in gerçekleşmesi durumunmda (araba her çalıştırıldığında) metodu çalıştırmasını sağlayalım.
Not: Yazılım terminolojisinde bu metodlar "On" ön eki ile başlarlar, İngilizcede bu ifade "şu olunca" anlamına geldiği için tüm programlama dillerinde ve tüm yazılımcıların bu metodların bir event'i temsil ettiğini anlamasını sağlar. Ancak Türkçe metod isimlerinde çok anlamlı olmadığı için metod isimlerine İngilizce olarak devam ediyorum.
Önceki bazı diğer benzer yazılarım için;
bkz: C# Main metodundaki string[] args nedir?
bkz: C# Nullable Kullanımı ve Örnekleri
bkz: C# Random Sınıfı Kullanımı ve Örnekleri
bkz: C# Sealed Anahtar Sözcüğü Nedir? Sealed Kullanımı ve Örnekleri?
bkz: C# Abstract Class ile Interface Arasındaki Farklar Nelerdir?
bkz: C# Enum Nedir? Kullanımı ve Örnekleri