委托各种写法以及详细教程
//1.创建委托类
//2.实例化类的对象 注意:实例化的时候 必须通过构造函数 传入一个方法
DGSayHi dgSayHi = new DGSayHi(SayHi);
//2.1向委托中 添加方法
dgSayHi += SayHi2;//编译后:dgSayHi = (DGSayHi) Delegate.Combine(dgSayHi, new DGSayHi(this.SayHi2));
dgSayHi = (DGSayHi)Delegate.Combine(dgSayHi, new DGSayHi(this.SayHi2));
//语法糖
dgSayHi = (DGSayHi)Delegate.Combine(dgSayHi, new DGSayHi(this.SayHi2));
dgSayHi += SayHi2;
dgSayHi = (DGSayHi)Delegate.Remove(dgSayHi, new DGSayHi(this.SayHi2));
dgSayHi = dgSayHi - SayHi2;
//3.调用委托的时候,一次性执行委托中所有的方法
dgSayHi();//编译后:dgSayHi.Invoke();
dgSayHi.Invoke();
dgSayHi.Invoke();
MessageBox.Show("删除一个方法后:");
//4.从委托中 删除 指定的方法
dgSayHi -= SayHi;//编译后:dgSayHi = (DGSayHi) Delegate.Remove(dgSayHi, new DGSayHi(this.SayHi));
dgSayHi();