事件
发布器类:
定义一个委托,定义一个基于委托的事件,定义事件触发
订阅器类:
定义方法
其他类:
new发布器类,new 订阅器类,然后把方法绑定到事件,触发。
public class Test
{
// ….
public delegate void TestHandler();//无参数,无返回委托
public event TestHandler TestEvent;//事件
public void OnTestHandler()//调用
{
if(TestEvent != null) //不等于null 说明该事件已经注册有函数
{
this.TestEvent();
}
}
}
class Program
{
static void Main(string[] args)
{
Test model = new Test();//实列
model.TestEvent += model_TestEvent;//为model 注册TestEvent事件的执行方法 这里可以绑定多个方法,然后在触发时多个方法按顺序执行
//model.TestEvent += model_TestEvent1
model.OnTestHandler();//调用引发事件
}
static void model_TestEvent()//事件执行方法,该方法样式要与委托一致(参数,返回值) 该方法可以放到单独的发布器类中
{
Console.WriteLine("这是最简单的事件");
}
}
自动驱动未来