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

面试题 相关文章推荐
康拓普公司Java笔面试
Sep 23 面试题
What is the purpose of Void class? Void类的作用是什么?
Oct 31 面试题
Java中compareTo和compare的区别
Apr 12 面试题
包装类的功能、种类、常用方法
Jan 27 面试题
数据库基础的一些面试题
Feb 25 面试题
ddl,dml和dcl的含义
May 08 面试题
linux面试题参考答案(7)
Oct 29 面试题
Prototype中如何为一个元素添加一个方法
Dec 08 面试题
Python是如何进行类型转换的
Jun 09 面试题
如何写出好的Java代码
Apr 25 面试题
Servlet如何得到服务器的信息
Dec 22 面试题
Servlet面试题库
Jul 18 面试题
如何在.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 adodb连接不同数据库
2009/03/19 PHP
浅析php中jsonp的跨域实例
2013/06/21 PHP
PHP转盘抽奖接口实例
2015/02/09 PHP
javaScript 数值型和字符串型之间的转换
2009/07/25 Javascript
jquery.validate使用攻略 第三部
2010/07/01 Javascript
JQuery动态给table添加、删除行 改进版
2011/01/19 Javascript
Raphael一个用于在网页中绘制矢量图形的Javascript库
2013/01/08 Javascript
js操作checkbox遇到的问题解决
2013/06/29 Javascript
如何使用Javascript正则表达式来格式化XML内容
2013/07/04 Javascript
通过JS来判断页面控件是否获取焦点
2014/01/03 Javascript
ie9 提示'console' 未定义问题的解决方法
2014/03/20 Javascript
JavaScript 弹出子窗体并返回结果到父窗体的实现代码
2016/05/28 Javascript
js基于setTimeout与setInterval实现多线程
2016/06/17 Javascript
Bootstrap Metronic完全响应式管理模板之菜单栏学习笔记
2016/07/08 Javascript
如何实现星星评价(jquery.raty.js插件)
2016/12/21 Javascript
canvas绘制七巧板
2017/02/03 Javascript
Vue2.0 UI框架ElementUI使用方法详解
2017/04/14 Javascript
浅谈VUE单页应用首屏加载速度优化方案
2018/08/28 Javascript
vue通过数据过滤实现表格合并
2020/11/30 Javascript
Vue配置marked链接添加target="_blank"的方法
2019/07/19 Javascript
layui上传图片到服务器的非项目目录下的方法
2019/09/26 Javascript
微信小程序实现列表的横向滑动方式
2020/07/15 Javascript
[02:12]打造更好的电竞完美世界:完美盛典回顾篇
2018/12/19 DOTA
[52:40]完美世界DOTA2联赛PWL S2 Magma vs GXR 第一场 11.29
2020/12/02 DOTA
[48:31]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第一场 2月2日
2021/03/11 DOTA
python多线程threading.Lock锁用法实例
2014/11/01 Python
Python中将字典转换为列表的方法
2016/09/21 Python
Python3解释器知识点总结
2019/02/19 Python
OpenCV3.0+Python3.6实现特定颜色的物体追踪
2019/07/23 Python
python 基于opencv 实现一个鼠标绘图小程序
2020/12/11 Python
美国豪华时尚女性精品店:Kirna Zabête
2018/01/11 全球购物
管理科学大学生求职信
2013/11/13 职场文书
学校消防安全制度
2014/01/30 职场文书
海南召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
志愿服务心得体会
2016/01/15 职场文书
2016年学校党支部公开承诺书
2016/03/25 职场文书