我读过MyEventHandler
/MyEventArgs
模型的一个好处,它允许标准事件处理程序处理各种事件。这听起来不错,但也许我正在理解这应该如何工作。我有以下代码:EventHandler设计实践
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)
修复了这个问题,所以我觉得你应该能够为更具体的事件添加通用的事件处理程序(我明白你为什么不能这样做)
是我该怎么做做到这一点的最佳方式,还是有更好的习惯?
这是.NET 4.0中的所有C# – dlras2 2010-07-08 20:40:15