事件---------2
接着委托:
声明之前要定义委托。
实际应用中:
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相关推荐
- JavaScrpit 犀牛书第七版笔记
JavaScrpit 犀牛书第七版笔记 挖个坑吧,JavaScript 犀牛书英文的第七版(JavaScript: The Definitive Guide, 7th Edition)其实在去年(20 ...
- 只要5分钟用数据可视化带你看遍11月份新闻热点事件
2017年11月份已经离我们而去,在过去的11月份我们也许经历了双十一的剁手,也可能亲眼看见了别人剁手.11月份的北京大兴区发生了"11·18"重大火灾,国内多家幼儿园也多次上了头 ...
- EventBus的粘性事件原理
EventBus也称事件总线,根据发送事件的类型分为普通事件和粘性事件. 粘性事件的用法: 1.订阅的时候加上sticky = true @Subscribe(threadMode = ThreadM ...
- 点击事件如何传递到Activity中
1.首先,当我们触摸屏幕时,通过Android消息机制,从Looper从MessageQueue中取出该事件,发送给WindowInputEventReceiver. 2.WindowInputEve ...
- 介绍一下android的事件分发机制
分发事件是指点击事件: 按下.滑动.抬起.取消(滑动超出控件边界时) 分发事件的组件: 也称为分发事件者,包括Activity.ViewGroup和View 事件分发的入口: Activity.dis ...
- ViewGroup的Touch事件分发(源码分析)
Android中Touch事件的分发又分为View和ViewGroup的事件分发,View的touch事件分发相对比较简单,可参考 View的Touch事件分发(一.初步了解) View的Touch事 ...
- View的Touch事件分发(二.源码分析)
Android中Touch事件的分发又分为View和ViewGroup的事件分发,先来看简单的View的touch事件分发. 主要分析View的dispatchTouchEvent()方法和onTou ...
- View的Touch事件分发(一.初步了解)
Android中Touch事件的分发又分为View和ViewGroup的事件分发,先来看简单的View的touch事件分发. 一次完整的Touch事件序列为: ACTION_DOWN -> AC ...
- 2021年大数据Spark(五十二):Structured Streaming 事件时间窗口分析
目录 事件时间窗口分析 时间概念 event-time 延迟数据处理 延迟数据 Watermarking 水位 官方案例演示 事件 ...
- CocosCreator TOUCH_MOVE事件
注册事件 在onDestroy里注销本事件 onLoad() {this.node.on(cc.Node.EventType.TOUCH_MOVE, this._touchMove, this); } ...
最新文章
- 【bzoj1853】[Scoi2010]幸运数字 容斥原理+搜索
- 使用Python批量删除windows下特定目录的N天前的旧文件实战:Windows下批量删除旧文件、清除缓存文件、解救C盘、拒绝C盘爆炸
- Kinect深度图像滤波
- 感知机数据算法的对偶形式
- pyinstaller的使用方法 by 王大龙
- wordpress插件-Media folder插件汉化版_优化加速插件
- 32位java jre_JRE8 32位|JRE 8 32位下载 Update 131官方版 - 121下载站
- github note
- DxO PhotoLab 3 for Mac(照片后期处理软件)
- Word2016以上版本兼容模式不能使用公式编辑器的解决办法
- ssm毕设项目自来水收费管理系统7yd5p(java+VUE+Mybatis+Maven+Mysql+sprnig)
- 利用XSLT来换XML的根
- php unlink 无法删除,php unlink 删除有关问题
- Linux常用命令|徐奥雯编辑整理|XUAOWEN
- 中南大学计算机学院2021复试名单,中南大学2021各学院研究生拟录取名单链接汇总!...
- 计算机瑞士留学经验,我在瑞士留学的点滴记录
- PHP 26个英文字母递增
- PAT编程(python) 1004 成绩排名
- 初学SDRAM笔记2--SDRAM的信号线及结构图
- 报500服务器内部错误解决思路
热门文章
- vnpy学习_04回测评价指标的缺陷
- 前端如何获取联通积分_高交会来了!中国联通带你“尝鲜”最新5G应用
- 石河子大学计算机类学什么,石河子大学有哪些专业好,2021年石河子大学各专业排名...
- linux串口环形缓冲区,能不能讲解下串口环形缓冲区的概念?
- 计算机组成原理 第三章 存储系统
- 牛客练习赛 栈和排序
- Python中替换元素
- 《Win测试的学习笔记》——Introduction
- 《深度学习笔记》——“损失函数loss乘以正数因子a是否等价于学习率lr乘以a呢?”
- MATLAB中的命令行输出