Yazarlar Sözlük Makaleler Yardım Masası Gözlük Forum İstatistik

Tüm Başlıklar XML

1.  Çalışan program tarafından farkedilen, ne zaman meydana geleceği belli olmayan olay. Programınıza "falanca olay ortaya çıkınca şu işi yap" diyebilirsiniz. Buna event driven programming denir.

Örneğin kullanıcının ekran üzerindeki bir butona tıklaması bir eventtir. Programcı bu event oluştuğunda merhaba diyen bir mesaj göstermek isteyebilir. Bunun için C# ile şu kodu yazmak gerekir:

Button btn = new Button();
btn.Click += new EventHandler(merhaba); // click olayı merhaba metoduna yönlendiriliyor.
..
..
public void merhaba(object sender, EventArgs e)
{
   MessageBox.Show("Merhaba!");
}

Burada btn'nin Click özelliği EventHandler isimli delegate tipinde bir .NET Event'idir. Click delegate'ine merhaba() metodunu ekleyerek Click olayı oluştuğunda merhaba() metodumuzun çalışmasını sağlıyoruz.
fizikci
30 Mayıs 2005 15:07 ~ 24 Kasım 2005 16:43
2.  Kendi event'inizi nasıl tanımlarsınız?

Örneğin KisiListesi adında bir sınıfınız olsun. Bu sınıfın AddKisi adındaki metoduyla kisi eklendiğinde KisiAdded event'inin oluşmasını ve ve bu event'in eklenen kişi instance'ını argüman olarak vermesini istiyorsunuz. Bu işi şöyle yapabilirsiniz:

public class KisiListesi
{
    public event KisiAddedEventHandler KisiAdded;

    public void OnKisiAdded(Kisi kisi)
    {
        // KisiAdded event delegate'i null değilse
        // KisiAdded delegate'ine atanmış tüm metodları çalıştırıyoruz.
        if(KisiAdded!=null)
            KisiAdded(this, new KisiAddedEventArgs(kisi); // delegate'i kullanarak
    }

    private ArrayList kisiler = new ArrayList();

    public void AddKisi(Kisi kisi)
    {
        kisiler.Add(kisi);
        OnKisiAdded(kisi); // event'i tetikliyoruz.
    }
}

public delegate void KisiAddedEventHandler(object sender, KisiAddedEventArgs arg);

public class KisiAddedEventArgs
{
    public Kisi Kisi;
    public KisiAddedEventArgs(Kisi kisi)
    {
        this.Kisi = kisi;
    }
}

Buraya kadar KisiListesi sınıfımızı yazdık ve kişi eklendiğinde tetiklenecek event'i tanımladık. Şimdi bu sınıfı kullanıp eventimizi deneyebiliriz.

public class HadiDeneyelimApp
{
    public static void Main()
    {
        KisiListesi ks = new KisiListesi();
        ks.KisiAdded += new KisiAddedEventHandler(this.KisiEklendi);
    }

    public void KisiEklendi(object sender, KisiAddedEventArgs arg)
    {
        Console.WiteLine(arg.Kisi.Ad);
    }
}

fizikci
26 Haziran 2005 16:40 ~ 04 Eylül 2005 11:42
3.  aynı zamanda, tanıtım toplantısı ya da organizasyonlara verilen terim
jessender
27 Haziran 2005 07:57
4.  C#'ta bir olaya bir metodu bağlamak için şu şekilde kullandığımız yazım şekli:
ks.KisiAdded += new KisiAddedEventHandler(this.KisiEklendi);

bu yazım şekline ilaveten C# 2.0 ile beraber şu şekilde daha sade yazılabilir:
ks.KisiAdded += this.KisiEklendi;

kar
15 Kasım 2006 22:20
Bu konuda bildiklerinizi bizlerle paylaşabilirsiniz
Tabi bunun için yazarsanız giriş yapmalı, yazar değilseniz yazar olmalısınız.


Bu başlığa bkz veren girişlerin başlıkları nedir?

Bu başlığa bkz veren girişler başka hangi başlıklara bkz verdiler?
© 2005, Bilişim Kulübü. (1531 ms)
Ne yapabilirsin: SubtitleClick ile İngilizceni Geliştir, Çınar Framework ile kod yaz, Eglencelik.org'ta biraz eğlen