多播委托和事件
事件的创造规则是类型必须是一个委托的类型,也就是说是委托实例化了事件
事例代码如下:
这是两个以后要被委托的方法:
public class EventManager { //第一个方法 public void Add(int i,int j) { int res = i + j; MessageBox.Show(res.ToString()); } //第二个方法 public void SayHello(int i,int j) { MessageBox.Show("hello word"+(i*j).ToString()); } }
这是委托以及时间的创造过程,包括了多播委托,每次创建一个新的委托放在事件上,就要新new一次委托,如此会创建一个委托队列:
//创建委托 public delegate void Num(int i, int j); //根据委托实例化事件,这里的事件只需要实例化一次 public event Num caculate; private void button1_Click(object sender, EventArgs e) { EventManager em = new EventManager(); //使用委托重载参数相同的实现方法 Num num = new Num(em.Add); //使用事件绑定委托Add方法 caculate += num; //使用事件绑定第二个说helloWord的方法 caculate += new Num(em.SayHello); //在这里只需要对事件穿第一次参数,事件的参数就会传入到每一个委托的方法里面执行得到不同的结果 this.caculate(5,5); }
积累小的知识,才能成就大的智慧,希望网上少一些复制多一些原创有用的答案