2010-10-07 7 views

Antwort

3

Die Laufzeitmaschine hat die Fähigkeit, die „fireAgain“ Parameter und verhindern die weitere Abfeuern der Ereignisse zu ändern. Um dies zu tun, muss die Laufzeit Zugriff auf die Variable haben. Dies kann nur geschehen, wenn der Parameter von ref übergeben wird.

+0

Sie haben gerade eine Frage von vor 4 Jahren wieder auferstehen lassen: P – enriquein

1

Es ist FireAgain Parameter.

Da das Auslösen eines Ereignisses teuer sein kann, bietet die Laufzeit-Engine einen Mechanismus zum Unterdrücken von Ereignissen, an denen Sie nicht interessiert sind. Jede Ereignisauslösemethode verfügt über einen FireAgain-Parameter. Wenn der Wert dieser Variablen false ist, wird der Aufrufer nach der Rückkehr der Methode dieses Ereignis für die Dauer der aktuellen Ausführung nicht erneut auslösen. Source

+4

Das erklärt immer noch nicht, warum die Designwahl es zu einem Ref-Parameter machen soll. Insbesondere, da der Aufrufer derjenige war, der die Methode aufgerufen hat, kennt der Aufrufer bereits den Wert des booleschen Parameters. Es ergibt keinen Sinn für mich. – enriquein