C# Delegeler ve Olaylar (Delegates and Events)

Delegeler (Delegates) işaretçi olarak düşünülebilir. çalışma zamanında tanımlanır, metotlara aracılık yapar ve temsil eder. Delegeler temel olarak derleme zamanında belli olmayan metotları çalışma zamanında  belirtmektir.

delegate int MyDelegate();
public delegate void MyDelegate(string mesaj);

bu şekilde delege miz sayesinde metodumuza çalışma zamanında ulaşabileceğiz.

Olaylar (Events) program kullanıcısının mouse, tuş gibi fonksiyonları kullanmasının karşığı oluşan faliyetlerdir. bu şekilde program kullanıcı doğrultusunda değişikliğe gidebilir.

Bir uygulamada meydana gelen olayları takip eden ve yakalayan mekanizmaya olay yöneticisi (event handler) denir, olay yöneticisi olay gerçekleştikten sonraki adımları delegelerle tanımlarız, yani olay yöneticisi delegelerle temsil edilir.

C# event tanımı öncesinde temsilcisini oluşturmamız gerekir.

public delegate string MyDelegate(); //Delegate Tanımlıyoruz
class MyEventCls //Event Sınıfımız
{
   public event MyDelegate evt; //Event

   public void Tetikle()
   {
       Console.WriteLine("Tarih: " + evt()); //TarihiGoster burada tetikleniyor.
   }
}
class Program
{
   static void Main(string[] args)
   {
      MyEventCls eventim = new MyEventCls(); //Nesne
      eventim.evt += new MyDelegate(TarihiGoster); //Olay için Metot ekliyoruz
      eventim.Tetikle();
   }

   static string TarihiGoster()
   {
       return DateTime.Now.Date.ToString(); //Tarih
   }
}

hhgsun tarafından yayımlandı

İstanbul da yaşıyorum 1993 doğumluyum bilgisayar alanında gelişmeye çalışıyorum

Yorum bırakın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s

%d blogcu bunu beğendi: