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

面试题 相关文章推荐
关联、聚合(Aggregation)以及组合(Composition)的区别
Feb 29 面试题
SQL里面如何插入自动增长序列号字段
Mar 29 面试题
简述数据库的设计过程
Jun 22 面试题
西安启天科技有限公司网络工程师面试题笔试题
Jun 12 面试题
说一下Linux下有关用户和组管理的命令
Jan 04 面试题
Linux管理员面试经常问道的相关命令
Dec 12 面试题
AURALog面试题软件测试方面
Oct 22 面试题
遇到的Mysql的面试题
Jun 29 面试题
介绍一下Mysql的存储引擎
Feb 12 面试题
Java语言程序设计测试题选择题部分
Apr 03 面试题
final, finally, finalize的区别
Mar 01 面试题
JSP&Servlet技术面试题
May 21 面试题
如何在.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获取栏目的所有子级和孙级栏目的ID号示例
2014/04/01 PHP
php自定义加密与解密程序实例
2014/12/31 PHP
php通过array_merge()函数合并关联和非关联数组的方法
2015/03/18 PHP
隐性调用php程序的方法
2015/06/13 PHP
几行代码轻松实现PHP文件打包下载zip
2017/03/01 PHP
xml分页+ajax请求数据源+dom取结果实例代码
2008/10/31 Javascript
javascript基础之查找元素的详细介绍(访问节点)
2013/07/05 Javascript
jquery判断小数点两位和自动删除小数两位后的数字
2014/03/19 Javascript
在父页面得到zTree已选中的节点的方法
2015/02/12 Javascript
关于js里的this关键字的理解
2015/08/17 Javascript
不用一句js代码初始化组件
2016/01/27 Javascript
Vue.js基础知识汇总
2016/04/27 Javascript
Angular2表单自定义验证器的实现
2016/10/19 Javascript
JavaScript中省略元素对数组长度的影响
2016/10/26 Javascript
基于javascript实现的购物商城商品倒计时实例
2016/12/11 Javascript
js中apply与call简单用法详解
2017/11/06 Javascript
nodejs实现超简单生成二维码的方法
2018/03/17 NodeJs
vue微信分享出来的链接点开是首页问题的解决方法
2018/11/28 Javascript
vue使用vuex实现首页导航切换不同路由的方法
2019/05/08 Javascript
Vue实现剪切板图片压缩功能
2020/02/04 Javascript
5个很好的Python面试题问题答案及分析
2018/01/19 Python
一篇文章搞懂Python的类与对象名称空间
2018/12/10 Python
pyqt5 lineEdit设置密码隐藏,删除lineEdit已输入的内容等属性方法
2019/06/24 Python
Python中使用双下划线防止类属性被覆盖问题
2019/06/27 Python
Django admin禁用编辑链接和添加删除操作详解
2019/11/15 Python
Python3变量与基本数据类型用法实例分析
2020/02/14 Python
英国顶级家庭折扣店:The Works
2017/09/06 全球购物
植村秀美国官网:Shu Uemura美国
2019/03/19 全球购物
三八红旗集体先进事迹材料
2014/05/22 职场文书
四风问题查摆剖析材料
2014/10/11 职场文书
2015大学生入党个人自传
2015/06/26 职场文书
反腐倡廉学习心得体会范文
2015/08/15 职场文书
班主任寄语2016
2015/12/04 职场文书
2016年中学植树节活动总结
2016/03/16 职场文书
JS中一些高效的魔法运算符总结
2021/05/06 Javascript
Android Gradle 插件自定义Plugin实现注意事项
2022/06/16 Java/Android