Gewusst wie: Implementieren benutzerdefinierter Ereignisaccessoren (C#-Programmierhandbuch)
Aktualisiert: November 2007
Ein Ereignis ist ein spezieller Multicastdelegat, der nur innerhalb der Klasse aufgerufen werden kann, in der er deklariert ist. Der Client abonniert das Ereignis, indem er einen Verweis auf eine Methode zur Verfügung stellt, die aufgerufen werden soll, wenn das Ereignis ausgelöst wird. Diese Methoden werden der Aufrufliste des Delegaten mithilfe von Ereignisaccessoren hinzugefügt, die Eigenschaftenaccessoren ähneln. Allerdings werden Eigenschaftenaccessoren add und remove benannt. In der Regel müssen Sie keine benutzerdefinierten Ereignisaccessoren zur Verfügung stellen. Wenn keine benutzerdefinierten Ereignisaccessoren im Code angegeben werden, fügt der Compiler sie automatisch hinzu. In einigen Fällen jedoch müssen Sie möglicherweise das benutzerdefinierte Verhalten bereitstellen. Ein entsprechendes Szenario wird im Thema Gewusst wie: Implementieren von Schnittstellenereignissen (C#-Programmierhandbuch) veranschaulicht.
Beispiel
Im folgenden Beispiel wird veranschaulicht, wie Sie benutzerdefinierte Ereignisaccessoren implementieren, hinzufügen und entfernen. Sie können zwar jeden Code in den Accessoren ersetzen, es wird jedoch empfohlen, vor dem Hinzufügen oder Entfernen einer neuen Ereignishandlermethode das Ereignis zu sperren.
event EventHandler IDrawingObject.OnDraw
{
add
{
lock (PreDrawEvent)
{
PreDrawEvent += value;
}
}
remove
{
lock (PreDrawEvent)
{
PreDrawEvent -= value;
}
}
}