EventHandler, EventHandler<TEventArg> 是.net Framework內部定義的兩個委托.
默認的System.EventArgs不包含參數,但我們可以通過繼承在子類中添加我們需要的數據。
public class MyEventArgs : EventArgs { public string message { get; set; } public MyEventArgs(string mess) { message = mess; } }
上例中:類MyEventArgs繼承於System.EventArgs,同時也定義了一個string類型的message屬性,用於接收數據。
現在在具體事例來使用 MyEventArgs類
public class DoTest { public DoTest() { } //定義事件 public event EventHandler<MyEventArgs> DoWork; public void Begin(string val) { if (DoWork != null) { MyEventArgs e = new MyEventArgs(val); DoWork(this, e); } } }
public class DoTest { public DoTest() { } //定義事件 public event EventHandler<MyEventArgs> DoWork; public void Begin(string val) { if (DoWork != null) { MyEventArgs e = new MyEventArgs(val); DoWork(this, e); } } }
dos.DoWork 注冊了匿名函數 ,功能是 輸出顯示 參數值message。
在調用Begin("1")函數,顯示 1; 此時通過e.message就可得到傳入的參數。
