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

面试题 相关文章推荐
为什么使用接口?
Aug 13 面试题
JAVA和C++区别都有哪些
Mar 30 面试题
索引覆盖(Index Covering)查询含义
Feb 18 面试题
武汉英思工程科技有限公司–ORACLE面试测试题目
Apr 30 面试题
请解释接口的显式实现有什么意义
May 26 面试题
.NET是怎么支持多种语言的
Feb 24 面试题
什么是虚拟内存?虚拟内存有什么优势?
Feb 09 面试题
linux面试题参考答案(10)
Nov 04 面试题
性能测试工程师的面试题
Feb 20 面试题
AURALog面试题软件测试方面
Oct 22 面试题
软件测试工程师结构化面试题库
Nov 23 面试题
Java如何获得ResultSet的总行数
Sep 03 面试题
如何在.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和ACCESS写聊天室(九)
2006/10/09 PHP
黑夜路人出的几道php笔试题
2009/08/04 PHP
php文件系统处理方法小结
2016/05/23 PHP
PHP实现表单提交时去除斜杠的方法
2016/12/26 PHP
Docker 安装 PHP并与Nginx的部署实例讲解
2021/02/27 PHP
Js base64 加密解密介绍
2013/10/11 Javascript
jQuery中使用data()方法读取HTML5自定义属性data-*实例
2014/04/11 Javascript
小议JavaScript中Generator和Iterator的使用
2015/07/29 Javascript
程序员必知35个jQuery 代码片段
2015/11/05 Javascript
jQuery+jsp下拉框联动获取本地数据的方法(附源码)
2015/12/03 Javascript
使用Bootstrap框架制作查询页面的界面实例代码
2016/05/27 Javascript
深入浅析JS是按值传递还是按引用传递(推荐)
2016/09/18 Javascript
Angular限制input框输入金额(是小数的话只保留两位小数点)
2017/07/13 Javascript
python实现系统状态监测和故障转移实例方法
2013/11/18 Python
在Python中使用模块的教程
2015/04/27 Python
python利用urllib实现爬取京东网站商品图片的爬虫实例
2017/08/24 Python
matplotlib设置legend图例代码示例
2017/12/19 Python
python写入并获取剪切板内容的实例
2018/05/31 Python
Python流程控制 while循环实现解析
2019/09/02 Python
python tkinter组件使用详解
2019/09/16 Python
wxPython实现绘图小例子
2019/11/19 Python
python字符串,元组,列表,字典互转代码实例详解
2020/02/14 Python
Python Handler处理器和自定义Opener原理详解
2020/03/05 Python
深入解析HTML5使用SVG图像时的viewBox属性用法
2015/09/02 HTML / CSS
HTML5 图片悬停放大的实现代码示例
2019/12/04 HTML / CSS
Bealls Florida百货商店:生活服饰、家居装饰和鞋子
2018/02/23 全球购物
荷兰街头时尚之家:Funkie House
2019/03/18 全球购物
介绍JAVA 中的Collection FrameWork(及如何写自己的数据结构)
2014/10/31 面试题
大学生毕业求职的自我评价
2013/09/29 职场文书
《陈毅探母》教学反思
2014/05/01 职场文书
艺术教育实施方案
2014/05/03 职场文书
保研专家推荐信范文
2015/03/25 职场文书
2015年学校心理健康教育工作总结
2015/05/11 职场文书
浅谈mysql返回Boolean类型的几种情况
2021/06/04 MySQL
Windows Server 版本 20H2 于 8 月 9 日停止支持,Win10 版本 21H1 将于 12 月结束支
2022/07/23 数码科技
windows10声卡驱动怎么安装?win10声卡驱动安装操作步骤教程
2022/08/05 数码科技