• C#委托----理解随记


    委托:

    委托就是一个类:继承自System.MulticastDelegate,里面内置了几个方法
    invoke :把方法包装成变量,invoke的时候自动执行方法
    委托的意义:委托解耦,减少重复代码
    异步多线程
    多播委托 :一个变量保存多个方法,可以增减,Invoke时可以按顺序执行
         +=为委托实例按顺序增加方法,形成方法链,Invoke时,按顺序依次执行
           -=为委托实例按移除方法,从方法链的尾部开始匹配,遇到第一个完全吻合的, 移除且只移除一个,没有也不异常
    多播委托是不能异步的,
    多播委托带返回值,结果以最后的为准

    发布者:一次动作导致的后续一系列动作的触发,直接调用别的实例,别的方法,不管是增/减顺序,都会使第一个不稳定

    事件:是带event 关键字的委托的实例,event 可以限制变量被外部调用/直接赋值,子类也不能调用
    委托和事件的区别与联系:
    委托是个类:比如Student
    事件是委托类型的一个实例 , 比如张三

    事件是可以把一堆可变的动作/行为封装出去,交给第三方来指定
    预定义一样,程序设计的时候,我们可以把程序分成两个部分,
    一部分是固定的,直接写死;还有不固定的地方,通过一个事件去开放接口,外部可以随意扩展动作

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

  • 相关阅读:
    1066 Bash 游戏
    1070 Bash 游戏 V4
    codevs 2928 你缺什么
    分块、线段树练习
    Father Christmas flymouse
    codevs 2494 Vani和Cl2捉迷藏
    codevs 2144 砝码称重2
    国王游戏
    codevs 1664 清凉冷水
    2015ACM/ICPC亚洲区沈阳站 Pagodas
  • 原文地址:https://www.cnblogs.com/Yida-Tingting/p/12957729.html
Copyright © 2020-2023  润新知