event (C# başvurusu)

anahtar event 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ın nasıl bildirildiğini ve tetiklendiğini gösterir. Genel EventHandler<TEventArgs> temsilci türünün nasıl kullanılacağını 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 sınıf (veya türetilmiş sınıflar) veya bildirildikleri yapı (yayımcı sınıfı) içinden ç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ı tetiklediğ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

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

Anahtar sözcük Açıklama Daha fazla bilgi edinmek 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
Sanal 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.
Soyut 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ılabilmesini sağlar. 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ı geçersiz kılma olayı, türetilmiş sınıflar için artık sanal olmadığını belirten korumalı bir olay da olabilir. Son olarak, bir olay soyut olarak bildirilebilir; bu da derleyicinin ve remove olay erişimci bloklarını add oluşturmayacağı anlamına gelir. Bu nedenle türetilmiş sınıflar kendi uygulamalarını sağlamalıdır.

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.