接着委托:

声明之前要定义委托。

实际应用中:

public class GreetingManager{
//在类内部声明delegate变量
  public GreetingDelegate delegate1;
  public void GreetPeople(sting name){
    if(delegate1!=null){delegate1(name);}}
}

GreetingManager gm=new GreetingManager();
gm.delegate=EnglishGreeting;
gm.delegate+=ChineseGreeting;
gm.GreetPeople("Jimmy Zhang");

delegate1若为public,则客户端对他不可见根本没用;private客户端随意赋值破坏封装性。

第一个用=第二个用+=,感觉不好。

所用Event出现了,它封装了委托类型的变量。类似string类型的属性对字段的封装。使得:在类的内部,不管声明的是public还是protected,它总是private的。在类的外部,注册“+=”和注销“-=”的访问限定符与你声明事件时使用的访问符相同。

上述改写为:

publice class GreetingManager{
  //这一次我们在这里声明一个事件
  public event GreetingDelegate MakeGreer;
  public void GreetPeople(string name){MakeGreet(name);}
}

GreetingManager gm=new GreetingManager();
gm.MakeGreet+=ChineseGreeting;
gm.GreetPeople("Jimmy Zhang");

MakeGreet被声明为私有的不能用“=”赋值。有两个方法add、remove对应+=和我-=。

转载于:https://www.cnblogs.com/yzj1212/archive/2012/08/15/2639935.html

事件---------2相关推荐

  1. JavaScrpit 犀牛书第七版笔记

    JavaScrpit 犀牛书第七版笔记 挖个坑吧,JavaScript 犀牛书英文的第七版(JavaScript: The Definitive Guide, 7th Edition)其实在去年(20 ...

  2. 只要5分钟用数据可视化带你看遍11月份新闻热点事件

    2017年11月份已经离我们而去,在过去的11月份我们也许经历了双十一的剁手,也可能亲眼看见了别人剁手.11月份的北京大兴区发生了"11·18"重大火灾,国内多家幼儿园也多次上了头 ...

  3. EventBus的粘性事件原理

    EventBus也称事件总线,根据发送事件的类型分为普通事件和粘性事件. 粘性事件的用法: 1.订阅的时候加上sticky = true @Subscribe(threadMode = ThreadM ...

  4. 点击事件如何传递到Activity中

    1.首先,当我们触摸屏幕时,通过Android消息机制,从Looper从MessageQueue中取出该事件,发送给WindowInputEventReceiver. 2.WindowInputEve ...

  5. 介绍一下android的事件分发机制

    分发事件是指点击事件: 按下.滑动.抬起.取消(滑动超出控件边界时) 分发事件的组件: 也称为分发事件者,包括Activity.ViewGroup和View 事件分发的入口: Activity.dis ...

  6. ViewGroup的Touch事件分发(源码分析)

    Android中Touch事件的分发又分为View和ViewGroup的事件分发,View的touch事件分发相对比较简单,可参考 View的Touch事件分发(一.初步了解) View的Touch事 ...

  7. View的Touch事件分发(二.源码分析)

    Android中Touch事件的分发又分为View和ViewGroup的事件分发,先来看简单的View的touch事件分发. 主要分析View的dispatchTouchEvent()方法和onTou ...

  8. View的Touch事件分发(一.初步了解)

    Android中Touch事件的分发又分为View和ViewGroup的事件分发,先来看简单的View的touch事件分发. 一次完整的Touch事件序列为: ACTION_DOWN -> AC ...

  9. 2021年大数据Spark(五十二):Structured Streaming 事件时间窗口分析

    目录 事件时间窗口分析 时间概念 ​​​​​​​event-time ​​​​​​​延迟数据处理 ​​​​​​​延迟数据 ​​​​​​​Watermarking 水位 ​​​​​​​官方案例演示 事件 ...

  10. CocosCreator TOUCH_MOVE事件

    注册事件 在onDestroy里注销本事件 onLoad() {this.node.on(cc.Node.EventType.TOUCH_MOVE, this._touchMove, this); } ...

最新文章

  1. 【bzoj1853】[Scoi2010]幸运数字 容斥原理+搜索
  2. 使用Python批量删除windows下特定目录的N天前的旧文件实战:Windows下批量删除旧文件、清除缓存文件、解救C盘、拒绝C盘爆炸
  3. Kinect深度图像滤波
  4. 感知机数据算法的对偶形式
  5. pyinstaller的使用方法 by 王大龙
  6. wordpress插件-Media folder插件汉化版_优化加速插件
  7. 32位java jre_JRE8 32位|JRE 8 32位下载 Update 131官方版 - 121下载站
  8. github note
  9. DxO PhotoLab 3 for Mac(照片后期处理软件)
  10. Word2016以上版本兼容模式不能使用公式编辑器的解决办法
  11. ssm毕设项目自来水收费管理系统7yd5p(java+VUE+Mybatis+Maven+Mysql+sprnig)
  12. 利用XSLT来换XML的根
  13. php unlink 无法删除,php unlink 删除有关问题
  14. Linux常用命令|徐奥雯编辑整理|XUAOWEN
  15. 中南大学计算机学院2021复试名单,中南大学2021各学院研究生拟录取名单链接汇总!...
  16. 计算机瑞士留学经验,我在瑞士留学的点滴记录
  17. PHP 26个英文字母递增
  18. PAT编程(python) 1004 成绩排名
  19. 初学SDRAM笔记2--SDRAM的信号线及结构图
  20. 报500服务器内部错误解决思路

热门文章

  1. vnpy学习_04回测评价指标的缺陷
  2. 前端如何获取联通积分_高交会来了!中国联通带你“尝鲜”最新5G应用
  3. 石河子大学计算机类学什么,石河子大学有哪些专业好,2021年石河子大学各专业排名...
  4. linux串口环形缓冲区,能不能讲解下串口环形缓冲区的概念?
  5. 计算机组成原理 第三章 存储系统
  6. 牛客练习赛 栈和排序
  7. Python中替换元素
  8. 《Win测试的学习笔记》——Introduction
  9. 《深度学习笔记》——“损失函数loss乘以正数因子a是否等价于学习率lr乘以a呢?”
  10. MATLAB中的命令行输出