系统定义好的委托常用于事件
EventHandler(object sender, EventArgs e);
EventHandler<TEventArgs>(object sender, TEventArgs e);
其中EventArgs可以用来在事件中传递数据
申明:
//正常不带其他数据时
public event EventHandler OnTest;
//要传入数据时先定义一个EventArgs
public class TestEventArgs : EventArgs
{
public int Count;
}
public event EventHandler<TestEventArgs> OnTestCompleted;
订阅:
public void Test_OnTest(object sender, EventArgs e)
{
Console.WriteLine("无数据的事件");
}
private void Test_OnTestCompleted(object sender, TestEventArgs e)
{
Console.WriteLine("有数据的事件"+e.Count);
}
OnTest += Test_OnTest;
OnTestCompleted += Test_OnTestCompleted;
使用:
//无数据时可以填入EventArgs.Empty
OnTest(this,EventArgs.Empty);
//或
OnTest.Invoke(this,EventArgs.Empty);
OnTestCompleted(this, new TestEventArgs{ Count = 2 }) ;
//或
OnTestCompleted.Invoke(this, new TestEventArgs{ Count = 2 }) ;