zoukankan      html  css  js  c++  java
  • 委托与事件--delegate&&event

    委托

    访问修饰符 delegate 返回值 委托名(参数);

    public delegate void NoReturnNoPara();

    public void NoReturnNoParaMethod() {};

    delegate地位:密封类,继承自System.MulticastDelegate,内置几个方法:构造方法、Invoke等;

    委托的实例化:NoReturnNoPara myD = new NoReturnNoPara(NoReturnNoParaMethod);

    委托的调用:myD.Invoke(); 或 myD();

    委托的核心:将方法作为参数传递;

    委托的好处:委托解耦,减少重复代码;异步多线程;多播委托(一个委托可以‘挂’多个方法+= -=);

    Action委托:无返回值的 委托 或 泛型委托,可接受0~16个参数。

    public void method(string str,int i){}

    Action<string,int> ac = method;

    Func委托:有返回值的泛型委托,可接受0~16个参数,最后一个参数为返回类型。注:Func只是泛型委托

    public bool isEmpty(int i){}

    Func<int,bool> fu = isEmpty;

    事件

    定义:是带event关键字的委托实例

    访问修饰符 event 委托名 事件名;

    public event NoReturnNoPara NoReturnNoParaHandlerEvent;

    使用范围:事件只能在声明的类中调用(子类都不能用),可以在类外部+= -=;

    事件:可以把一堆可变的动作/行为封装出去,交给第三方来指定;

       程序设计的时候,我们可以把程序分成两部分,一部分是固定的,直接写死,还有不固定的部分,通过一个事件去开放接口,外部可以随意扩展动作。

    框架:完成固定/通用部分,把可变部分留出扩展点,支持自定义

  • 相关阅读:
    React的状态管理工具
    Ant Design
    Mac 10.12安装专业抓包工具Wireshark
    Mac 10.12安装飞鸽传书IPMessager
    Mac 10.12安装XMind
    Mac 10.12安装SVN工具SmartSVM 7.6
    Mac 10.12安装Windows远程桌面工具Microsoft Remote Desktop
    Mac 10.12安装Office 2011
    Mac 10.12安装迅雷2.7.2
    Mac 10.12安装虚拟机软件VMware Fusion 12
  • 原文地址:https://www.cnblogs.com/1016391912pm/p/11631864.html
Copyright © 2011-2022 走看看