Ich habe ein Ereignis, das derzeit ohne Ereignisargumente definiert ist. Das heißt, die EventArgs, die es sendet, ist EventArgs.Empty.Sollte ein Event, das keine Argumente hat, eigene EventArgs definieren oder einfach System.EventArgs verwenden?
In diesem Fall ist es am einfachsten meine Ereignishandler zu erklären, wie:
EventHandler<System.EventArgs> MyCustomEvent;
Ich plane nicht auf dieses Ereignis keine Veranstaltung Argumente hinzufügen, sondern es ist möglich, dass jeder Code in ändern müssen könnte die Zukunft.
Daher bin ich darauf ausgerichtet, dass alle meine Ereignisse immer einen leeren Ereignisargumentyp erzeugen, der von System.EventArgs
inherher ist, auch wenn momentan keine Ereignisargumente benötigt werden. Etwas wie folgt aus:
public class MyCustomEventArgs : EventArgs
{
}
Und dann meine Event-Definition wird wie folgt vor:
EventHandler<MyCustomEventArgs> MyCustomEvent;
Also meine Frage ist: ist es besser, meine eigene MyCustomEventArgs
zu definieren, auch wenn er nichts hinzufügen, über Erben von , damit Ereignisargumente in Zukunft leichter hinzugefügt werden können? Oder ist es besser, mein Ereignis explizit als zurückgeben zu definieren, so dass es für den Benutzer klarer ist, dass es keine zusätzlichen Ereignisargumente gibt?
Ich möchte benutzerdefinierte Ereignisargumente für alle meine Ereignisse erstellen, auch wenn die Ereignisargumente leer sind. Aber ich fragte mich, ob andere dachten, dass es besser wäre, dem Benutzer klarzumachen, dass die Ereignisargumente leer sind?
Vielen Dank im Voraus,
Mike
Ich bin gerade mit Ereignisbehandlung auch vertraut. Ich wollte nur bestätigen, ist 'EventHandler' ein Tippfehler, der 'EventHandler ' sein sollte? Wenn nicht, wo befindet sich diese Klasse? –
fostandy
Ja, gute Abholung, Sie sind richtig, das sollte lesen: 'EventHandler', die ich jetzt korrigiert habe. Die Tatsache, dass der Absender ein Objekt ist, ist implizit, wenn die Klasse 'EventHandler <>' verwendet wird. Sehen Sie sich dazu noch einmal "Ereignissignatur in .NET - Verwendung eines stark typisierten" Absenders "an?" (http://stackoverflow.com/questions/1046016/event-signature-in-net- using-a-strong-typed-sender), aber dieser alternative Ansatz ist nicht Standard, so dass Sie diese Route möglicherweise nicht gehen möchten als Anfänger. Es ist jedoch interessant und es funktioniert sehr gut. –