Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Anahtar
Olay, bir nesnenin bildirimleri tetiklesine olanak tanıyan bir üyedir. Olay kullanıcıları, olay işleyicileri sağlayarak olaylar için yürütülebilir kod ekleyebilir.
event anahtar sözcüğü bir olay bildirir. Olay bir temsilci türündedir. Bir nesne bir olayı tetiklese de, olay sağlanan tüm olay işleyicilerini çağırır. Olay işleyicileri, olaya eklenen ve olay tetiklendiğinde yürütülen temsilci örnekleridir. Olay kullanıcıları bir olaya olay işleyicilerini ekleyebilir veya kaldırabilir.
Aşağıdaki örnek, temel alınan temsilci türü olarak kullanan EventHandler bir olayı bildirmeyi ve tetiklemeyi gösterir. Kod örneğinin tamamı için bkz. .NET Yönergelerine uygun olayları yayımlama. Bu örnekte genel EventHandler<TEventArgs> temsilci türü, bir olaya abone olma ve olay işleyicisi yöntemi oluşturma işlemleri gösterilir.
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) içinden veya bildirildikleri yapıdan (yayımcı sınıfı) çağrılabilen çok noktaya yayın temsilcileridir. 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 , , private, protected, internal, protected internalveya private protectedolarak publiciş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.
C# 14'le başlayarak olaylar olabilir partial. Kısmi olayların bir tanımlama bildirimi ve uygulayan bildirimi vardır. Tanımlama bildirimi, alan benzeri söz dizimini kullanmalıdır. Uygulayan bildirimin add ve remove işleyicilerini bildirmesi gerekir.
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. Statik olaylar, sınıfın hiçbir örneği mevcut olmasa bile çağıranlar tarafından herhangi bir zamanda kullanılabilir. Daha fazla bilgi için bkz . Statik Sınıflar ve Statik Sınıf Üyeleri.
Bir olay, anahtar sözcüğü kullanılarak virtual sanal olay olarak işaretlenebilir. Türetilmiş sınıflar anahtar sözcüğünü override kullanarak olay davranışını geçersiz kılabilir. Daha fazla bilgi için bkz . Devralma. Sanal olayın geçersiz kılındığı bir olay, sealedtüretilmiş sınıflar için artık sanal olmadığını belirten olabilir. Son olarak, bir olay bildirilebilirabstract, 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.