1、委托是什么?
委托是存储函数的引用类型,类似于函数,但不带函数体,且要使用delegate关键字。
2、委托用在哪?
委托是一个类,将方法当作另一个方法的参数进行传递,动态地复制给参数的方法。
3、委托怎么用?
来个栗子趴:主从窗体通信
① 从窗体(form2)发送信息给主窗体(form1)

主要语句:
form1: 首先,先声明一个委托 public delegate void ShowResult(string paraml)
建立接受传递的信息---Receiver(string paraml)方法
form2: 根据委托创建委托对象 public ShowResult msgSender
创建委托变量传递 msgSender(string paraml)
form1: 关联form2
form2 fm=new form2();
fm.msgSender=Receiver;
fm.show();
②从主窗体(form1)同时向从窗体(form2,form3,form4)发送信息

form1: 首先,先声明一个委托 public delegate void ShowResult(string paraml)
根据委托创建委托对象 public ShowResult msgSender
form2,form3,rorm4: 建立接受传递的信息---Receiver(string paraml)方法
form1: 关联form2
form2 fm2=new form2();
form3 fm3=new form3();
form4 fm4=new form4();
this.msgSender+=fm2.Receiver;
this.msgSender+=fm3.Receiver;
this.msgSender+=fm4.Receiver;
form2.show();
form3.show();
form4.show();
③ 委托与事件(event)
事件的理解: 事件是对象在外界触发下发生事情,而对外提供的一种消息机制。
事件的参与者:发送端 即对象本身,触发事件,并发送给接受端
接受端 用来处理事件
事件可以看做为委托的类型
form1 :声明一个委托 public delegate void ShowResult(string paraml)
声明一个事件 public event ShowResult sendMsgEvent
form2 : 建立一个事件响应方法 public void enventRespone(string msg)
form1: 关联form2
form2 fm2=new form2();
sendMsgEvent+=new ShowResult(fm2.enventRespone);
fm2.show();