Bu makale, makine tarafından çevrilmiştir. Makaleyi İngilizce dilinde görüntülemek için İngilizce onay kutusunu işaretleyin. Ayrıca, fare işaretçisiyle İngilizce metnin üzerine gelerek metni açılır pencerede de görüntüleyebilirsiniz.
Çeviri
İngilizce

EventHandler Temsilcisi

 

Hiçbir olay verileri içeren bir olayı işleyecek yöntemi temsil eder.

Ad alanı:   System
Derleme:  mscorlib (mscorlib.dll içinde)

[SerializableAttribute]
[ComVisibleAttribute(true)]
public delegate void EventHandler(
	object sender,
	EventArgs e
)

Parametreler

sender
Type: System.Object

Olay kaynağı.

e
Type: System.EventArgs

Hiçbir olay verilerini içeren bir nesne.

.NET Framework içindeki olay modeli açık bir olay kendi işleyicisi ile bağlanan bir olay temsilcisini olması temel alır. Bir olay oluşturmak için iki öğe gereklidir:

  • Yöntemini tanımlayan bir temsilci, olaya yanıt olarak sağlar.

  • Olay verileri sağlıyorsa, olay verileri tutan isteğe bağlı olarak, bir sınıf.

Temsilci bir imza, diğer bir deyişle, dönüş değeri türü ve bir yöntem için parametre listesi türleri tanımlayan bir türdür. Herhangi bir yöntemle aynı imzaya temsilci başvurabilir bir değişken bildirmek için temsilci türüyle kullanabilirsiniz.

Bir olay işleyici temsilcisini standart imzası bir değer döndürmeyen bir yöntemi tanımlar. Bu yöntemin ilk parametre türünde Object ve olayı oluşturan örneğine başvurur. Kendi ikinci parametre türünden türetilmiş EventArgs ve olay verileri tutar. Olay olay verilerini oluşturmaz, ikinci parametre yalnızca değeri EventArgs.Empty alan. Aksi takdirde, ikinci parametre türetilmiş bir tür olan EventArgs ve herhangi bir alan veya olay verileri tutmak için gereken özellikleri sağlar.

EventHandler Temsilcisidir özellikle veri oluşturmaz bir olay için bir olay işleyicisi yöntemi temsil eden önceden tanımlanmış bir temsilci. Olay verileri oluşturmak, genel kullanın EventHandler<TEventArgs> temsilci sınıfında.

Olay olayı işleyecek yöntemi ile ilişkilendirmek için bir temsilci örneğini olayına ekleyin. Olay her gerçekleştiğinde temsilciyi kaldırmadığınız sürece olay işleyicisi çağrılır.

Olay işleyici temsilcileri hakkında daha fazla bilgi için bkz: Olaylar Oluşturma ve İşleme.

Aşağıdaki örnek adlı bir olay gösterdiğine ThresholdReached ile ilişkili bir EventHandler temsilci. Atanan yöntemi EventHandler temsilci çağrıldığında OnThresholdReached yöntemi.

using System;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Counter c = new Counter(new Random().Next(10));
            c.ThresholdReached += c_ThresholdReached;

            Console.WriteLine("press 'a' key to increase total");
            while (Console.ReadKey(true).KeyChar == 'a')
            {
                Console.WriteLine("adding one");
                c.Add(1);
            }
        }

        static void c_ThresholdReached(object sender, ThresholdReachedEventArgs e)
        {
            Console.WriteLine("The threshold of {0} was reached at {1}.", e.Threshold,  e.TimeReached);
            Environment.Exit(0);
        }
    }

    class Counter
    {
        private int threshold;
        private int total;

        public Counter(int passedThreshold)
        {
            threshold = passedThreshold;
        }

        public void Add(int x)
        {
            total += x;
            if (total >= threshold)
            {
                ThresholdReachedEventArgs args = new ThresholdReachedEventArgs();
                args.Threshold = threshold;
                args.TimeReached = DateTime.Now;
                OnThresholdReached(args);
            }
        }

        protected virtual void OnThresholdReached(ThresholdReachedEventArgs e)
        {
            EventHandler<ThresholdReachedEventArgs> handler = ThresholdReached;
            if (handler != null)
            {
                handler(this, e);
            }
        }

        public event EventHandler<ThresholdReachedEventArgs> ThresholdReached;
    }

    public class ThresholdReachedEventArgs : EventArgs
    {
        public int Threshold { get; set; }
        public DateTime TimeReached { get; set; }
    }
}

Evrensel Windows Platformu
8 sonrasında kullanılabilir
.NET Framework
1.1 sonrasında kullanılabilir
Taşınabilir Sınıf Kitaplığı
Destekleyen: taşınabilir .NET platformları
Silverlight
2.0 sonrasında kullanılabilir
Windows Phone Silverlight
7.0 sonrasında kullanılabilir
Windows Phone
8.1 sonrasında kullanılabilir
Başa dön
Show: