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

面试题 相关文章推荐
如何提高JDBC的性能
Apr 30 面试题
经典C++面试题一
Nov 06 面试题
存储过程和sql语句的优缺点
Jul 02 面试题
简述网络文件系统NFS,并说明其作用
Oct 19 面试题
介绍一下木马病毒的种类
Jul 26 面试题
C#如何进行LDAP用户校验
Nov 21 面试题
Linux不知道文件后缀名怎么判断文件类型
Aug 21 面试题
提高EJB性能都有哪些技巧
Mar 25 面试题
Prototype是怎么扩展DOM的
Oct 01 面试题
一套英文Java笔试题面试题
Apr 21 面试题
如何安装ruby on rails
Feb 09 面试题
Java面试题冲刺第十六天--消息队列
Aug 07 面试题
如何在.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 高手之路(一)
2006/10/09 PHP
几个常用的JavaScript字符串处理函数 - split()、join()、substring()和indexOf()
2009/06/02 Javascript
js获取RadioButtonList的Value/Text及选中值等信息实现代码
2013/03/05 Javascript
使用PHP+JQuery+Ajax分页的实现
2013/04/23 Javascript
javascript history对象(历史记录)使用方法(实现浏览器前进后退)
2014/01/07 Javascript
用js正确判断用户名cookie是否存在的方法
2014/01/28 Javascript
一个简单的jQuery计算器实现了连续计算功能
2014/07/21 Javascript
jquery实现表格本地排序的方法
2015/03/11 Javascript
谈谈因Vue.js引发关于getter和setter的思考
2016/12/02 Javascript
NodeJS遍历文件生产文件列表功能示例
2017/01/22 NodeJs
详解node中创建服务进程
2017/05/09 Javascript
基于vue实现swipe轮播组件实例代码
2017/05/24 Javascript
Angular+Node生成随机数的方法
2017/06/16 Javascript
开发Vue树形组件的示例代码
2017/12/21 Javascript
nodejs图片处理工具gm用法小结
2018/12/12 NodeJs
实现elementUI表单的全局验证的方法步骤
2019/04/29 Javascript
[03:00]2018完美盛典_最佳英雄奖
2018/12/17 DOTA
Python实现冒泡,插入,选择排序简单实例
2014/08/18 Python
跟老齐学Python之有容乃大的list(3)
2014/09/15 Python
python编程测试电脑开启最大线程数实例代码
2018/02/09 Python
Python连接Mssql基础教程之Python库pymssql
2018/09/16 Python
Python 给某个文件名添加时间戳的方法
2018/10/16 Python
python+selenium select下拉选择框定位处理方法
2019/08/24 Python
简单了解为什么python函数后有多个括号
2019/12/19 Python
python标准库OS模块详解
2020/03/10 Python
基于Python正确读取资源文件
2020/09/14 Python
英国设计师泳装、沙滩装和比基尼在线精品店:Beach Cafe
2019/08/28 全球购物
计算机专业推荐信范文
2013/11/20 职场文书
2014年语文教学工作总结
2014/12/17 职场文书
优秀党员申报材料
2014/12/18 职场文书
2015年度绩效考核工作总结
2015/05/27 职场文书
鉴史问廉观后感
2015/06/10 职场文书
新学期主题班会
2015/08/17 职场文书
社会心理学学习心得体会
2016/01/22 职场文书
使用pandas或numpy处理数据中的空值(np.isnan()/pd.isnull())
2021/05/14 Python
Mysql中where与on的区别及何时使用详析
2021/08/04 MySQL