Я читал, что одно из преимуществ модели MyEventHandler
/ MyEventArgs
заключается в том, что она позволяет стандартным обработчикам событий обрабатывать различные события.Звучит хорошо, но, возможно, я понимаю, как это должно работать.У меня есть следующий код:
public delegate void DataArrivalEventHandler
(object sender, DataArrivalEventArgs e);
public class DataArrivalEventArgs : EventArgs
{
public DateTime Arrival { get; protected set; }
public DataArrivalEventArgs()
{
Arrival = DateTime.Now;
}
public DataArrivalEventArgs(DateTime arrival)
{
Arrival = arrival;
}
}
...
_pipeReader.DataArrival += new EventHandler(Pipe_DataArrival);
...
private void Pipe_DataArrival(object sender, EventArgs e)
{
...
}
Код выдает ошибку при попыткеоднако добавьте обработчик событий, сказав, что он не может приводить к простоте приведения DataArrivalEventHandler
к EventHandler
.Изменение DataArrivalEventHandler(Pipe_DataArrival)
на EventHandler(Pipe_DataArrival)
устраняет проблему, поэтому я чувствую, что вы должны иметь возможность добавлять универсальные обработчики событий к более конкретным событиям (я понимаю, почему вы не можете сделать это наоборот).* Насколько у меня это лучший способ сделать это, или есть лучшее соглашение?