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ı, iç, 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.