Wie die Ereignisse wie CancelEventArgs verwendet werden kann?
Wie können die Veranstaltung System.ComponentModel.CancelEventArgs
verwendet werden? Angenommen, wir haben folgenden code:
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 Sie mehr als einen Teilnehmer registriert ist, auf das Ereignis? Gibt es eine Möglichkeit, die Ergebnisse von allen Teilnehmern?
Dieser verwendet wird, auf Winforms (zumindest) manchmal. Falls dies nicht möglich ist, um alle Werte, die Sie annehmen, nur ein Abonnent der Veranstaltung?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bitten jeden Teilnehmer separat, benötigen Sie Zugriff auf die Liste:
Dann können Sie jeweils in Reihe; sonst bekommst du nur die Schlussabstimmung.
Normalerweise, in den meisten Fällen die Klasse nur erlaubt mehrere Abonnenten, aber jeder bekommt die gleiche Instanz der CancelEventArgs.
Wenn jeder der Abonnenten set Cancel auf true, wird der Vorgang so behandelt werden, als storniert.
Können Sie umgehen dies, indem Sie die Aufruf-Liste, und senden ein Ereignis, um jeden Abonnenten, aber dies ist normalerweise nicht notwendig.