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;

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

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

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

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

  • 相关阅读:
    css3线性渐变
    php的%s
    面向对象
    excel导入导出
    保存Excel
    保存word
    图片预览
    验证日期输入格式
    级联菜单
    中级前端知识点提要
  • 原文地址:https://www.cnblogs.com/1016391912pm/p/11631864.html
Copyright © 2011-2022 走看看