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...

面试题 相关文章推荐
如何在Cookie里面保存Unicode和国际化字符
May 25 面试题
抽象方法、抽象类怎样声明
Oct 25 面试题
附答案的Java面试题
Nov 19 面试题
广州御银科技股份有限公司试卷(C++)
Nov 04 面试题
一个SQL面试题
Aug 21 面试题
端口镜像是怎么实现的
Mar 25 面试题
C#如何允许一个类被继承但是避免这个类的方法被重载?
Feb 24 面试题
C#里面可以避免一个类被其他类继承么?如何?
Sep 26 面试题
法雷奥SQA(electric)面试问题
Jan 23 面试题
EJB timer的种类
Oct 28 面试题
MYSQL相比于其他数据库有哪些特点
Jul 19 面试题
设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。
Dec 30 面试题
如何在.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
制作美丽的拉花
2021/03/03 冲泡冲煮
PHP SFTP实现上传下载功能
2017/07/26 PHP
js两行代码按指定格式输出日期时间
2011/10/21 Javascript
Javascript执行效率全面总结
2013/11/04 Javascript
js 剪切板的用法(clipboardData.setData)与js match函数介绍
2013/11/19 Javascript
jQuery插件multiScroll实现全屏鼠标滚动切换页面特效
2015/04/12 Javascript
JavaScript中DOM详解
2015/04/13 Javascript
全面解析Bootstrap表单使用方法(表单按钮)
2015/11/24 Javascript
整理Javascript函数学习笔记
2015/12/01 Javascript
JavaScript事件类型中UI事件详解
2016/01/14 Javascript
js实现字符全排列算法的简单方法
2017/05/01 Javascript
JavaScript队列函数和异步执行详解
2017/06/19 Javascript
详解jquery选择器的原理
2017/08/01 jQuery
BootStrap入门学习第一篇
2017/08/28 Javascript
分析javascript中9 个常见错误阻碍你进步
2017/09/18 Javascript
Vue-cli中为单独页面设置背景色的实现方法
2018/02/11 Javascript
vuejs 切换导航条高亮(路由菜单高亮)的方法示例
2018/05/29 Javascript
vue插件draggable实现拖拽移动图片顺序
2018/12/01 Javascript
微信小程序swiper组件实现抖音翻页切换视频功能的实例代码
2020/06/24 Javascript
[02:55]2018DOTA2国际邀请赛勇士令状不朽珍藏Ⅲ饰品一览
2018/08/01 DOTA
[01:08:29]DOTA2-DPC中国联赛定级赛 RNG vs Aster BO3第一场 1月9日
2021/03/11 DOTA
pycharm 在windows上编辑代码用linux执行配置的方法
2018/10/27 Python
pytorch 在sequential中使用view来reshape的例子
2019/08/20 Python
python实现超级马里奥
2020/03/18 Python
Python可以用来做什么
2020/11/23 Python
windows系统Tensorflow2.x简单安装记录(图文)
2021/01/18 Python
CSS3中的@keyframes关键帧动画的选择器绑定
2016/06/13 HTML / CSS
使用html2canvas.js实现页面截图并显示或上传的示例代码
2018/12/18 HTML / CSS
Expedia西班牙:预订酒店、机票、旅行和廉价度假套餐
2019/04/10 全球购物
Linux机考试题
2015/10/16 面试题
关于运动会的广播稿(10篇)
2014/09/12 职场文书
离婚协议书范本2014
2014/10/27 职场文书
个人委托书范文
2015/01/28 职场文书
阿凡达观后感
2015/06/10 职场文书
励志正能量20句:送给所有为梦想拼搏的人
2019/11/11 职场文书
详解Redis实现限流的三种方式
2021/04/27 Redis