event (C# başvurusu)

event anahtar sözcüğü, yayımcı sınıfında bir olay bildirmek için kullanılır.

Örnek

Aşağıdaki örnek, temel alınan temsilci türü olarak kullanan EventHandler bir olayı bildirmeyi ve tetiklemeyi gösterir. Genel temsilci türünün nasıl kullanılacağını EventHandler<TEventArgs> ve bir olaya abone olma ve olay işleyicisi yöntemi oluşturma adımlarını da gösteren tam kod örneği için bkz . .NET Yönergelerine uygun olayları yayımlama.

public class SampleEventArgs
{
    public SampleEventArgs(string text) { Text = text; }
    public string Text { get; } // readonly
}

public class Publisher
{
    // Declare the delegate (if using non-generic pattern).
    public delegate void SampleEventHandler(object sender, SampleEventArgs e);

    // Declare the event.
    public event SampleEventHandler SampleEvent;

    // Wrap the event in a protected virtual method
    // to enable derived classes to raise the event.
    protected virtual void RaiseSampleEvent()
    {
        // Raise the event in a thread-safe manner using the ?. operator.
        SampleEvent?.Invoke(this, new SampleEventArgs("Hello"));
    }
}

Olaylar, yalnızca bildirildikleri sınıf (veya türetilmiş sınıflar) veya yapıdan (yayımcı sınıfı) çağrılabilen özel bir çok noktaya yayın temsilcisi türüdür. Diğer sınıflar veya yapılar olaya abone olursa, yayımcı sınıfı olayı yükselttiğinde olay işleyici yöntemleri çağrılır. Daha fazla bilgi ve kod örnekleri için bkz . Olaylar ve Temsilciler.

Olaylar genel, özel, korumalı, , korumalı iç veya özel korumalı olarak işaretlenebilir. Bu erişim değiştiricileri, sınıf kullanıcılarının olaya nasıl erişebileceğini tanımlar. Daha fazla bilgi için bkz . Erişim Değiştiricileri.

Anahtar sözcükler ve olaylar

Aşağıdaki anahtar sözcükler olaylar için geçerlidir.

Anahtar sözcük Açıklama Daha fazla bilgi için
static Sınıfın hiçbir örneği mevcut olmasa bile, olayı çağıranların istediği zaman kullanılabilir hale getirir. Statik Sınıflar ve Statik Sınıf Üyeleri
virtual Türetilmiş sınıfların override anahtar sözcüğünü kullanarak olay davranışını geçersiz kılmasına izin verir. Devralma
sealed Türetilmiş sınıflar için artık sanal olmadığını belirtir.
abstract Derleyici ve remove olay erişimci bloklarını oluşturmaz add ve bu nedenle türetilmiş sınıfların kendi uygulamalarını sağlaması gerekir.

Bir olay statik anahtar sözcüğü kullanılarak statik olay olarak bildirilebilir. Bu, sınıfın hiçbir örneği mevcut olmasa bile olayı çağıranların istediği zaman kullanılabilir hale getirir. Daha fazla bilgi için bkz . Statik Sınıflar ve Statik Sınıf Üyeleri.

Bir olay, sanal anahtar sözcüğü kullanılarak sanal olay olarak işaretlenebilir. Bu, türetilmiş sınıfların override anahtar sözcüğünü kullanarak olay davranışını geçersiz kılmasını sağlar. Daha fazla bilgi için bkz . Devralma. Sanal olayın geçersiz kılındığı bir olay, türetilmiş sınıflar için artık sanal olmadığını belirten korumalı da olabilir. Son olarak, bir olay soyut olarak bildirilebilir, yani derleyici ve remove olay erişimci bloklarını add oluşturmaz. Bu nedenle türetilmiş sınıfların kendi uygulamalarını sağlaması gerekir.

C# dili belirtimi

Daha fazla bilgi edinmek için, bkz. C# Dil Belirtimi. Dil belirtimi, C# sözdizimi ve kullanımı için kesin bir kaynaktır.

Ayrıca bkz.