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

面试题 相关文章推荐
普通PHP程序员笔试题
Jan 01 面试题
PHP面试题及答案一
Jun 18 面试题
数据库连接池的工作原理
Sep 26 面试题
一个C/C++编程面试题
Nov 10 面试题
触发器(trigger)的功能都有哪些?写出一个触发器的例子
Sep 17 面试题
在子网210.27.48.21/30种有多少个可用地址?分别是什么?
Jul 27 面试题
类和结构的区别
Aug 15 面试题
Windows和Linux动态库应用异同
Apr 17 面试题
一道输出判断型Java面试题
Oct 01 面试题
Java中会存在内存泄漏吗,请简单描述
Dec 22 面试题
如何用Java判断一个文件或目录是否存在
Nov 19 面试题
ruby如何进行集成操作?Ruby能进行多重继承吗?
Oct 16 面试题
如何在.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间隔一段时间执行代码的方法
2014/12/02 PHP
yii中widget的用法
2014/12/03 PHP
Symfony学习十分钟入门经典教程
2016/02/03 PHP
PHP进阶学习之依赖注入与Ioc容器详解
2019/06/19 PHP
document节点对象的获取方式示例介绍
2013/12/24 Javascript
动态添加option及createElement使用示例
2014/01/26 Javascript
JavaScript中Math.SQRT2属性的使用详解
2015/06/14 Javascript
简单谈谈javascript中的变量、作用域和内存问题
2015/08/30 Javascript
jQuery动态添加及删除表单上传元素的方法(附demo源码下载)
2016/01/15 Javascript
基于canvas实现的绚丽圆圈效果完整实例
2016/01/26 Javascript
解析javascript瀑布流原理实现图片滚动加载
2016/03/10 Javascript
jQuery easyUI datagrid 增加求和统计行的实现代码
2016/06/01 Javascript
AngularJS教程 ng-style 指令简单示例
2016/08/03 Javascript
jQuery焦点图左右转换效果
2016/12/12 Javascript
js/jq仿window文件夹移动/剪切/复制等操作代码
2017/03/08 Javascript
如何解决vue与传统jquery插件冲突
2017/03/20 Javascript
微信小程序之数据缓存的实例详解
2017/09/29 Javascript
ES6 javascript中class静态方法、属性与实例属性用法示例
2017/10/30 Javascript
全面解析JavaScript Module模式
2020/07/24 Javascript
Python Django使用forms来实现评论功能
2016/08/17 Python
python爬虫基本知识
2018/03/05 Python
python实现linux下抓包并存库功能
2018/07/18 Python
python 比较字典value的最大值的几种方法
2020/04/17 Python
详解python的xlwings库读写excel操作总结
2021/02/26 Python
CSS3 flex布局之快速实现BorderLayout布局
2015/12/03 HTML / CSS
HTML5在线预览PDF的示例代码
2017/09/14 HTML / CSS
canvas 橡皮筋式线条绘图应用方法
2019/02/13 HTML / CSS
Staples美国官方网站:办公用品一站式采购
2016/07/28 全球购物
.NET程序员的数据库面试题
2012/10/10 面试题
以太网Ethernet IEEE802.3
2013/08/05 面试题
物流管理专业大学生自荐信
2013/10/04 职场文书
优秀求职自荐信怎样写
2013/12/18 职场文书
《小儿垂钓》教学反思
2014/02/23 职场文书
2014年党员自我评议总结
2014/09/23 职场文书
村主任群众路线个人对照检查材料
2014/09/26 职场文书
地方白酒代理协议书
2014/10/25 职场文书