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和Session及他们之间的区别
Nov 20 面试题
一些PHP的面试题
May 06 面试题
新电JAVA笔试题目
Aug 31 面试题
SQL Server 2000数据库的文件有哪些,分别进行描述。
Nov 09 面试题
3个CCIE对一个工程师的面试题
May 06 面试题
如何手工释放资源
Dec 15 面试题
Linux如何命名文件--使用文件名时应注意
May 29 面试题
瀑布模型都有哪些优缺点
Jun 23 面试题
什么是GWT的Module
Jan 20 面试题
同步和异步有何异同,在什么情况下分别使用他们?
Dec 28 面试题
Java Servlet API中forward() 与redirect()的区别
Apr 20 面试题
请介绍一下WSDL的文档结构
Mar 17 面试题
如何在.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
百度地图API应用之获取用户的具体位置
2014/06/10 PHP
PHP实现克鲁斯卡尔算法实例解析
2014/08/22 PHP
详解PHP中的null合并运算符
2015/12/30 PHP
EarthLiveSharp中cloudinary的CDN图片缓存自动清理python脚本
2017/04/04 PHP
详解Laravel5.6 Passport实现Api接口认证
2018/07/27 PHP
基于PHP实现生成随机水印图片
2020/12/09 PHP
日期函数扩展类Ver0.1.1
2006/09/07 Javascript
checkbox 多选框 联动实现代码
2008/10/22 Javascript
jquery 触发a链接点击事件解决方案
2013/05/02 Javascript
javascript 获取HTML DOM父、子、临近节点
2014/06/16 Javascript
JQuery中Bind()事件用法分析
2015/05/05 Javascript
jQuery EasyUI Dialog拖不下来如何解决
2015/09/28 Javascript
js本地图片预览实现代码
2016/10/09 Javascript
利用jquery禁止外层滚动条的滚动
2017/01/05 Javascript
javascript表单正则应用
2017/02/04 Javascript
JS手机端touch事件计算滑动距离的方法示例
2017/10/26 Javascript
解决vue处理axios post请求传参的问题
2018/03/05 Javascript
Angular 2使用路由自定义弹出组件toast操作示例
2019/05/10 Javascript
vue实现移动端省市区选择
2019/09/27 Javascript
JS实现容器模块左右拖动效果
2020/01/14 Javascript
Python之父谈Python的未来形式
2016/07/01 Python
Python实现判断并移除列表指定位置元素的方法
2018/04/13 Python
python 反向输出字符串的方法
2018/07/16 Python
在Python中定义一个常量的方法
2018/11/10 Python
说说如何遍历Python列表的方法示例
2019/02/11 Python
获取Pytorch中间某一层权重或者特征的例子
2019/08/17 Python
PyCharm无法引用自身项目解决方式
2020/02/12 Python
python输出pdf文档的实例
2020/02/13 Python
python实现跨excel sheet复制代码实例
2020/03/03 Python
使用keras2.0 将Merge层改为函数式
2020/05/23 Python
基于HTML5+Webkit实现树叶飘落动画
2017/12/28 HTML / CSS
Petmate品牌官方网站:宠物用品
2018/11/25 全球购物
意大利值得信赖的在线超级药房:PillolaStore
2020/02/05 全球购物
C#如何调用Word并打开一个Word文档
2013/05/08 面试题
50岁生日感言
2014/01/23 职场文书
赔偿协议书范本
2014/04/15 职场文书