C# 委托如何理解 打个比喻
初学者可能会给winform窗体注册事件,也听过事件是基于委托实现的 那么,委托是什么,事件又是什么,委托和事件是什么关系。
个人喜欢做一些比喻,把这些东西想象成某一个模型,这样方便记忆,理解,随着对这个东西的理解更加深入,模型也更加抽象,更加完善。
家里有一些电器(双孔插头)【冰箱:制冷、 电灯:照明、洗衣机:洗衣服 、空调:吹风 。。。。。】,家里有好多个双孔插座,有一个总开关,一打开,只要插入插座的电器就可以工作。
现在来看一下这一整套系统的工作原理:
电器都有一个共性:有电才能工作,有个双孔插头;电器有不同点,工作中干啥,由自己决定。
总开关一通电他下面的所有与插入插座的电器都会通电,并按自己的实际用途工作。总开关不知道它下面的那些电器是如何工作的,也不关心他们是不是坏的,只知道供电。
但开关一开,电器都会按自己的功能进行工作。
这跟委托有什么关系呢?
委托就是具体供电功能,且只能给两个插孔供电的总开关 ,他下面的第一个电器就是"勾"(连通) 到这个总开关上的 电器,总开关一开,就会给所有的电器供电,相当于委托对象
去执行Invoke 方法,而与之绑定的(主动插上插头) 方法(电器),就会干活。
C# 委托如何理解 打个比喻的更多相关文章
- C# 委托的理解
1.什么是委托 委托可以理解为持有一个或多个方法的对象.如果执行委托的话,委托会 执行它所"持有"的方法.委托可以避免程序中大量使用if-else语句,使 程序拥有更好的扩展性. ...
- C#委托,事件理解入门 (译稿)
原文地址:http://www.codeproject.com/Articles/4773/Events-and-Delegates-Simplified 引用翻译地址:http://www.cnbl ...
- C#中委托的理解
请注意,这只是个人关于C#中委托的一点点理解,参考了一些博客,如有不周之处,请指出,谢谢! 委托是一种函数指针,委托是方法的抽象,方法是委托的实例.委托是C#语言的一道坎,明白了委托才能算是C#真正入 ...
- 对JS中事件委托的理解
什么是事件委托: 事件委托——给父元素绑定事件,用来监听子元素的冒泡事件,并找到是哪个子元素的事件.(不理解冒泡的可以去百度下) 定义:利用事件冒泡处理动态元素事件绑定的方法,专业术语叫事件委托. 使 ...
- asp.net事件委托易理解实例
比如说一个公司(场景),你是老板,手下有两个员工,小张和小王. 你命令小王,如果小张玩游戏,则小王扣去小张500元钱.这就是现实中的委托.实际上,在写程序中,程序员就是老板,小张和小王就是两个对象.小 ...
- 事件冒泡及事件委托的理解(JQuery Dom操作)
jQuery事件冒泡: click mouseenter 等事件没有绑定 也会触发,只是触发后没有任何结果 子元素触发事件后,会把触发事件传递给父元素,那么父元素也会被触发. 不管有没有绑定事件,都会 ...
- C#基础学习之委托的理解和应用
委托的使用和语法定义 委托的使用是由四步来完成的,依次为:声明委托.创建委托对象.委托关联方法.调用 我们用一个例子来说明这四步如何操作,我们完成一个老板委托员工写报告的实例,看如何实现. 首先我们应 ...
- C#知识体系(二)用案例来理解委托与事件
上一篇博客讲到了LinQ和lambda的常用方法 还有很多我们未知但c#设计团队已经为我们封装好的类和方法.随着我们不断的熟悉C#语言,渐渐的就会接触到其他的知识点,委托.事件.反射.线程.同步,异步 ...
- C#委托理解(个人观点)
前言: 根据百度百科字面意思是:把事情托付给别人或别的机构(办理/处理), 我们就按汉字意思来理解; 再罗嗦一点通俗一点就是:当某人发生什么事情后把处理这个事情的工作托付给别人或别的机构(办理/处理) ...
随机推荐
- Create a Listlink
#ifndef List_h__ #define List_h__ #include <stdio.h> struct ListNode { int value; ListNode* pN ...
- DIV+CSS:Margin和Padding属性[转载]
margin和padding用来隔开元素,margin是隔开元素与外边,padding是隔开元素里边. margin: 包括margin-top.margin-right.margin-bottom. ...
- redis集群同步迁移方法(二):通过redis-migrate-tool实现
前篇介绍的redis replication方法,操作步骤多,而且容易出错.在git上看到一些开源工具也能实现同步迁移功能,而且步骤简单,比如redis-port,redis-migrate-tool ...
- AOP和IOC的作用
IOC:控制反转,是一种设计模式.一层含义是控制权的转移:由传统的在程序中控制依赖转移到由容器来控制:第二层是依赖注入:将相互依赖的对象分离,在spring配置文件中描述他们的依赖关系.他们的依赖关系 ...
- DAO实例代码优化
一般在接口的实现类中不用来实现登陆等功能,在测试类中实现并且测试. package com.beiwo.epet.service.impl; import com.beiwo.epet.dao.Mas ...
- php编码规范
PHP 文件格式 1.对于只包含有 PHP 代码的文件,结束标志("?>")是不允许存在的,PHP自身不需要("?>"), 这样做, 可以防止它的末 ...
- kafka生产消息的速度跟什么有关?
kafka的吞吐量很大,在保证带宽的情况下,网上的一些测试表明3台broker,没有replication,6个partition的情况下,一般的写入速度可以达到300MB/s.参考:kakfa测试 ...
- gulp配置文件备份
/** * Created by leyi on 2016/8/25 0025. */ /*********************package.json依赖模块****************** ...
- 简单的androidStudio 添加Jar包
感谢http://blog.csdn.net/ta893115871/article/details/46955791博主的文章, 1新建一个空项目 2在项目下添加一个新的moudle 3在该moud ...
- table变色
<!DOCTYPE html><html><head> <meta http-equiv="Content-Type" content=& ...