委托基本用法

1、委托是什么?

    委托是存储函数的引用类型,类似于函数,但不带函数体,且要使用delegate关键字。

2、委托用在哪?

   委托是一个类,将方法当作另一个方法的参数进行传递,动态地复制给参数的方法。

3、委托怎么用?

   来个栗子趴:主从窗体通信

  ① 从窗体(form2)发送信息给主窗体(form1)

委托基本用法_第1张图片

   主要语句:

  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)发送信息

委托基本用法_第2张图片

   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();

 

你可能感兴趣的:(编程,java,c#,后端)