C# 中委托和代理是一个概念吗??
刚刚看了一下资料,发现有些资料说的是代理,有的说是委托,但都是指同一样东西delegate,委托和事件是有关的,因为事件的本质就是多播委托,关于多播委托楼主可以找找资料就知道了。
不过个人觉得这两个概念只是相近但不等同。从实际情况来理解,代理(Proxy)其实是一种设计模式,例如:某个不想被外界访问或者禁止直接被外界的对象,此时需要有一个中介使其能够与外界进行通讯,而种中介就称做代理。而C#中的委托(Delegate)有些不同,其本质是一种函数指针,其只是把对象委托给它的方法原封不动地提供给其他对象调用,并不能做任何的修饰。而代理并不是按照原接口提供出去,其做法是自身定义一个与被代理对象相同或者相似的接口提供给外界调用,因为提供的方法完全由代理本身的性质决定。
所以个人认为C#中的delegate称为委托更加适合。
C# 中委托和代理是一个概念吗??的更多相关文章
- C#中委托和代理的深刻理解(转载)
在写代码的过程中遇到了一个问题,就是" .net CallbackOnCollectedDelegate 垃圾回收问题. " 使用全局钩子的时候出现: globalKeyboard ...
- python 全栈开发,Day55(jQuery的位置信息,JS的事件流的概念(重点),事件对象,jQuery的事件绑定和解绑,事件委托(事件代理))
一.jQuery的位置信息 jQuery的位置信息跟JS的client系列.offset系列.scroll系列封装好的一些简便api. 一.宽度和高度 获取宽度 .width() 描述:为匹配的元素集 ...
- JavaScript中事件委托(事件代理)详解
在JavaScript的事件中,存在事件委托(事件代理),那么什么是事件委托呢? 事件委托在生活中的例子: 有三个同事预计会在周一收到快递.为签收快递,有两种办法:一是三个人在公司门口等快递:二是委托 ...
- Js 中的事件委托/事件代理
什么叫事件委托/事件代理呢 ? JavaScript高级程序设计上讲:事件委托就是利用事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件. 事件冒泡: 当事件发生后,这个事件就要开始传 ...
- c#打包文件解压缩 C#中使用委托、接口、匿名方法、泛型委托实现加减乘除算法 一个简单例子理解C#的协变和逆变 对于过长字符串的大小比对
首先要引用一下类库:using Ionic.Zip;这个类库可以到网上下载. 下面对类库使用的封装方法: 得到指定的输入流的ZIP压缩流对象 /// <summary> /// 得到指定的 ...
- 幂等性是数学中的一个概念,表达的是N次变换与1次变换的结果相同
幂等性是数学中的一个概念,表达的是N次变换与1次变换的结果相同
- Action<>和Func<> 委托【代理】
C#中的Action<>和Func<> 其实他们两个都是委托[代理]的简写形式. 一.[action<>]指定那些只有输入参数,没有返回值的委托 Delegate的 ...
- c#中委托和事件(续)(转)
本文将讨论委托和事件一些更为细节的问题,包括一些大家常问到的问题,以及事件访问器.异常处理.超时处理和异步方法调用等内容. 为什么要使用事件而不是委托变量? 在 C#中的委托和事件 中,我提出了两个为 ...
- java中的动态代理机制
java中的动态代理机制 在java的动态代理机制中,有两个重要的类或接口,一个是 InvocationHandler(Interface).另一个则是 Proxy(Class),这一个类和接口是实现 ...
随机推荐
- glob 文件或目录查找
glob模块是最简单的模块之一,内容非常少.用它可以查找符合特定规则的文件或目录(含相对或绝对路径).跟使用windows下的文件搜索差不多. 在python中,glob模块是用来查找匹配的文件的 在 ...
- linux命令(46):程序运行前后台切换
A,Shell支持作用控制,有以下命令:1. command& 让进程在后台运行2. jobs 查看后台运行的进程3. fg %n 让后台运行的进程n到前台来4. bg %n 让进程n到后台去 ...
- Android Service GetSystemService
http://blog.sina.com.cn/s/blog_71d1e4fc0100o8qr.html http://blog.csdn.net/bianhaohui/article/details ...
- adb install使用说明
[时间:2016-08] [状态:Open] [关键词:android, apk,adb install] 将apk安装到模拟器或者手机上. Pushes an Android application ...
- Using curl to upload POST data with files
https://stackoverflow.com/questions/12667797/using-curl-to-upload-post-data-with-files ************* ...
- js实现文本框文本域光标处插入图片文本的插件(并且光标在插入内容的内容后显示)
js: /******************************************* * * 插入光标处的插件 * @authors Du xin li * @update 2015 ...
- IPC相关的命令
进程间通信概述 进程间通信有如下的目的: 1.数据传输,一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M之间: 2.共享数据,多个进程想要操作共享数据,一个进程对数据的修改,其他进 ...
- Ubuntu 安装 mysql
sudo apt-get install mysql-server sudo apt install mysql-client sudo apt install libmysqlclient-dev
- div模态显示内容
业务需要,上传的图片,本地显示大图: 模态代码: <div onclick="hidebigimg()" class = "bg-model" style ...
- WCF数据契约
当使用DataMember时,和访问符无关,及时使用了private,成员都是可见的.相反如果使用static,为不可见. 上述的两个数据成员是等效的,如果是等效的话 数据成员的顺序也必须是相同的. ...