Wie kann das Ereignis System.ComponentModel.CancelEventArgs
verwendet werden? Angenommen, wir haben den folgenden Code:Wie können Ereignisse wie CancelEventArgs verwendet werden?
public event CancelEventHandler EventTest = delegate { };
public void MakeSomethingThatRaisesEvent()
{
CancelEventArgs cea = new CancelEventArgs();
EventTest(this, cea);
if (cea.Cancel)
{
// Do something
}
else
{
// Do something else
}
}
Was passiert, wenn mehr als ein Delegat für die Veranstaltung registriert ist? Gibt es eine Möglichkeit, die Ergebnisse aller Abonnenten zu erhalten?
Dies wird manchmal (zumindest) auf Winforms verwendet. Wenn es nicht möglich ist, alle Werte zu erhalten, nehmen sie nur einen Teilnehmer für das Ereignis an?
Nur das! Danke – FerranB
Es ist keine Stimme. (Ich weiß, das war eine Wendung, aber es könnte fehlinterpretiert werden.) Wenn ein Abonnent Cancel auf true setzt, ist es am Ende wahr. Kein Abonnent sollte Cancel auf false setzen, da dies einen vorherigen Abonnenten außer Kraft setzen würde. –