我讀過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