delegate与普通函数的区别


Posted in 面试题 onJanuary 22, 2014
Delegate 是一种函数指针,Delegate 与普通的函数指针的区别:
a) 一个 delegate object 一次可以搭载多个方法(methods)。当我们唤起一个搭载了多个方法(methods)的 delegate,所有方法以其“被搭载到 delegate object 的顺序”被依次唤起。
b) 一个 delegate object 所搭载的方法(methods)并不需要属于同一个类别。一个 delegate object 所搭载的所有方法(methods)必须具有相同的原型和形式。这些方法(methods)可以即有 static 也有 non-static,可以由一个或多个不同类别的成员组成。
c) 一个 delegate type 的声明在本质上是创建了一个新的 subtype instance,该 subtype 派生自 .NET library framework 的 abstract base classes Delegate 或 MulticastDelegate,它们提供一组 public methods 用以询访 delegate object 或其搭载的方法(methods)
声明 Delegate Type
一个 delegate type 的声明一般由四部分组成:(a) 访问级别;(b) 关键字 delegate;(c)返回型别,以及该 delegate type 所搭载之方法的声明形式(signature);(d) delegate type 的名称,被放置于返回型别和方法的声明形式(signature)之间。
C#虽然取消了指针的这个概念,但还是可以使用指针的, 只要声明这段代码是非安全的(Unsafe).C#为指针找到一个更为有用的引用类型—-代表元,它在C#类型里是十分安全的.在声明代表元时,只要指定代表元指向的原型的类型,它不能有返回值,也不能带回输出类型的参数.代表元可以封装一个静态方法,也可以封装一个非静态方法.

Tags in this post...

面试题 相关文章推荐
编写类String 的构造函数、析构函数和赋值函数
Sep 09 面试题
VLAN和VPN有什么区别?分别实现在OSI的第几层?
Dec 23 面试题
北京某科技有限公司C# .net笔试题
Sep 27 面试题
Linux不知道文件后缀名怎么判断文件类型
Apr 26 面试题
一套比较完整的软件测试人员面试题
May 13 面试题
EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的
Jul 24 面试题
Ajax的工作原理
Dec 04 面试题
为什么Runtime.exec(“ls”)没有任何输出?
Oct 03 面试题
介绍一下Java中标识符的命名规则
Feb 03 面试题
同步和异步有何异同,在什么情况下分别使用他们
Apr 09 面试题
金鑫耀Java笔试题
Sep 06 面试题
Java Servlet的主要功能和作用是什么
Feb 14 面试题
如何在.net Winform里面显示PDF文档
Sep 11 #面试题
请解释接口的显式实现有什么意义
May 26 #面试题
.NET里面如何取得当前的屏幕分辨率
Dec 06 #面试题
请解释virtual关键字的含义
Jun 17 #面试题
System.Array.CopyTo()和System.Array.Clone()有什么区别
Jun 20 #面试题
shallow copy和deep copy的区别
May 09 #面试题
Ref与out有什么不同
Nov 24 #面试题
You might like
在PHP中PDO解决中文乱码问题的一些补充
2010/09/06 PHP
php环境套包 dedeampz 伪静态设置示例
2014/03/26 PHP
Thinkphp中volist标签mod控制一定记录的换行BUG解决方法
2014/11/04 PHP
浅谈PHP中单引号和双引号到底有啥区别呢?
2015/03/04 PHP
PHP实现事件机制的方法
2015/07/10 PHP
js类 from qq
2006/11/13 Javascript
json简单介绍
2008/06/10 Javascript
Javascript insertAfter() 实现函数代码
2011/10/12 Javascript
JQuery动画animate的stop方法使用详解
2014/05/09 Javascript
JavaScript中用字面量创建对象介绍
2014/12/31 Javascript
jquery实现简单的全选和反选功能
2016/01/02 Javascript
解决微信浏览器Javascript无法使用window.location.reload()刷新页面
2016/06/21 Javascript
浅谈javascript控制HTML5的全屏操控,浏览器兼容的问题
2016/10/10 Javascript
微信小程序 欢迎界面开发的实例详解
2016/11/30 Javascript
DOM 事件的深入浅出(二)
2016/12/05 Javascript
Bootstrap table两种分页示例
2016/12/23 Javascript
ES6新特性四:变量的解构赋值实例
2017/04/21 Javascript
Vue实例中生命周期created和mounted的区别详解
2017/08/25 Javascript
Vue.set 全局操作简单示例
2019/09/19 Javascript
小程序实现录音功能
2020/09/22 Javascript
Python实现自动添加脚本头信息的示例代码
2016/09/02 Python
pandas的唯一值、值计数以及成员资格的示例
2018/07/25 Python
对python的bytes类型数据split分割切片方法
2018/12/04 Python
对Django 中request.get和request.post的区别详解
2019/08/12 Python
Python中使用socks5设置全局代理的方法示例
2020/04/15 Python
米兰网婚纱礼服法国网上商店:Milanoo法国
2016/08/20 全球购物
美国鞋类购物网站:Shiekh Shoes
2016/08/21 全球购物
教育学专业毕业生的自我鉴定
2013/11/26 职场文书
幼儿园中班新学期寄语
2014/01/18 职场文书
开学典礼感言
2014/02/16 职场文书
药剂专业自荐书
2014/06/20 职场文书
村长反四风问题个人对照检查材料
2014/09/21 职场文书
《假如》教学反思
2016/02/17 职场文书
高三数学教学反思
2016/02/18 职场文书
使用python+pygame开发消消乐游戏附完整源码
2021/06/10 Python
Oracle数据库中通用的函数实例详解
2022/03/25 Oracle