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和Javasciprt的区别
Sep 02 面试题
NULL是什么,它是怎么定义的
May 09 面试题
哪些情况下不应该使用索引
Jul 20 面试题
什么是ARP(Address Resolution Protocol)地址解析协议
Oct 31 面试题
上海微创软件面试题
Jun 14 面试题
Linux如何为某个操作添加别名
Feb 05 面试题
linux系统都有哪些运行级别
Mar 26 面试题
如何利用XMLHTTP检测URL及探测服务器信息
Nov 10 面试题
是否可以从一个static方法内部发出对非static方法的调用?
Aug 18 面试题
举例说明类变量和实例变量的区别
Jun 30 面试题
XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
Jan 12 面试题
如何在.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 curl常见错误:SSL错误、bool(false)
2011/12/28 PHP
Laravel 4 初级教程之视图、命名空间、路由
2014/10/30 PHP
PHP __call()方法实现委托示例
2019/05/20 PHP
php精度计算的问题解析
2019/06/21 PHP
prototype1.4中文手册
2006/09/22 Javascript
js 页面关闭前的出现提示的实现代码
2011/05/25 Javascript
jQuery基本选择器选择元素使用介绍
2013/04/18 Javascript
zTree插件之多选下拉菜单实例代码
2013/11/06 Javascript
js实现div弹出层的方法
2014/11/20 Javascript
node.js操作mongoDB数据库示例分享
2014/11/26 Javascript
jQuery中queue()方法用法实例
2014/12/29 Javascript
javascript实现当前页导航激活的方法
2015/02/27 Javascript
js window对象属性和方法相关资料整理
2015/11/11 Javascript
js实现仿微博滚动显示信息的效果
2015/12/21 Javascript
AngularJS ng-blur 指令详解及简单实例
2016/07/30 Javascript
jQuery列表检索功能实现代码
2017/07/17 jQuery
基于node.js的fs核心模块读写文件操作(实例讲解)
2017/09/10 Javascript
vue开发环境配置跨域的方法步骤
2019/01/16 Javascript
Vue+Express实现登录注销功能的实例代码
2019/05/05 Javascript
vue-cli history模式实现tomcat部署报404的解决方式
2019/09/06 Javascript
Python的math模块中的常用数学函数整理
2016/02/04 Python
浅谈python脚本设置运行参数的方法
2018/12/03 Python
Python 3.8 新功能全解
2019/07/25 Python
利用Python脚本实现自动刷网课
2020/02/03 Python
python实现将两个文件夹合并至另一个文件夹(制作数据集)
2020/04/03 Python
Java爬虫技术框架之Heritrix框架详解
2020/07/22 Python
Cpython解释器中的GIL全局解释器锁
2020/11/09 Python
SISLEY希思黎官方旗舰店:享誉全球的奢华植物美容品牌
2018/04/25 全球购物
如果一个类实现了多个接口但是这些接口有相同的方法名将会怎样
2013/06/16 面试题
安全演讲稿大全
2014/05/09 职场文书
合伙经营协议书范本
2014/09/13 职场文书
办理房产证委托书
2014/09/18 职场文书
高中生思想道德自我评价
2015/03/09 职场文书
台风停课通知
2015/04/24 职场文书
培训心得体会怎么写
2016/01/25 职场文书
python中sqllite插入numpy数组到数据库的实现方法
2021/06/21 Python