Here is the common .NET pattern for firing some event
// Here is the event
public event EventHandler<ReminderEventArgs> ReminderOccured;
...
// And to fire it
EventHandler<ReminderEventArgs> reminderOccured = this.ReminderOccured;
if (reminderOccured != null)
{
reminderOccured(this, new ReminderEventArgs { Reminder = reminder });
}
This is a common pattern so a helper class to tidy this up might be of some use:
public static class EventFirer
{
public static void FireEvent<TEventArgs>(object firer,
EventHandler<TEventArgs> eventToFire, TEventArgs eventargs)
where TEventArgs : EventArgs
{
EventHandler<TEventArgs> eventToFireReference = eventToFire;
if (eventToFireReference != null)
{
eventToFireReference(firer, eventargs);
}
}
public static void FireEvent(object firer, EventHandler eventToFire,
EventArgs eventargs)
{
EventHandler eventToFireReference = eventToFire;
if (eventToFireReference != null)
{
eventToFireReference(firer, eventargs);
}
}
}
With this class firing the event becomes:
EventFirer.FireEvent<ReminderEventArgs>(this,
this.ReminderOccured,
new ReminderEventArgs { Reminder = reminder });
No comments:
Post a Comment