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

面试题 相关文章推荐
类的核心特性有哪些
Jan 01 面试题
关键字final的用法
Oct 02 面试题
枚举与#define宏的区别
Apr 30 面试题
链表面试题-一个链表的结点结构
May 04 面试题
用缩写的指针比较"if(p)" 检查空指针是否可靠?如果空指针的内部表达不是0会怎么样?
Jan 05 面试题
ddl,dml和dcl的含义
May 08 面试题
什么是索引指示器
Aug 20 面试题
为什么需要版本控制?
Aug 08 面试题
软件测试工程师面试问题精选
Oct 28 面试题
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
May 30 面试题
Java模拟试题
Nov 10 面试题
Unix里面如何在后台运行程序
Oct 14 面试题
如何在.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的list()的一步操作给一组变量进行赋值的使用
2011/05/18 PHP
细谈php中SQL注入攻击与XSS攻击
2012/06/10 PHP
php中fsockopen用法实例
2015/01/05 PHP
PHP字符串逆序排列实现方法小结【strrev函数,二分法,循环法,递归法】
2017/01/13 PHP
Yii2设置默认控制器的两种方法
2017/05/19 PHP
SUN的《AJAX与J2EE》全文译了
2007/02/23 Javascript
jquery下组织javascript代码(js函数化)
2010/08/25 Javascript
ExtJs GridPanel简单的增删改实现代码
2010/08/26 Javascript
js常用代码段整理
2011/11/30 Javascript
JavaScript面向对象之Prototypes和继承
2012/07/12 Javascript
js形成页面的一种遮罩效果实例代码
2014/01/04 Javascript
无刷新预览所选择的图片示例代码
2014/04/02 Javascript
谷歌地图打不开的解决办法
2014/08/07 Javascript
jQuery操作JSON的CRUD用法实例
2015/02/25 Javascript
百度地图API之本地搜索与范围搜索
2015/07/30 Javascript
jQuery使用$.ajax进行即时验证的方法
2015/12/08 Javascript
jQuery实现的简单前端搜索功能示例
2017/10/28 jQuery
详解VUE 对element-ui中的ElTableColumn扩展
2018/03/28 Javascript
修改Nodejs内置的npm默认配置路径方法
2018/05/13 NodeJs
35个最好用的Vue开源库(史上最全)
2019/01/03 Javascript
JavaScript学习笔记之DOM操作实例分析
2019/01/08 Javascript
vue-drawer-layout实现手势滑出菜单栏
2020/11/19 Vue.js
[00:59]DOTA2荣耀之路1:Doom is back!weapon X!
2018/05/22 DOTA
Python 统计字数的思路详解
2018/05/08 Python
深入浅析Python传值与传址
2018/07/10 Python
Flask框架Jinjia模板常用语法总结
2018/07/19 Python
使用Python实现微信提醒备忘录功能
2018/12/04 Python
关于Pycharm无法debug问题的总结
2019/01/19 Python
Python实现自定义读写分离代码实例
2019/11/16 Python
迷你唐卡软皮鞋:Minnetonka Moccasin
2018/05/01 全球购物
个人自我鉴定
2013/11/07 职场文书
幼儿教师工作感言
2014/02/14 职场文书
幼儿园法制宣传日活动总结
2014/11/01 职场文书
2014年科协工作总结
2014/12/09 职场文书
Java 将PPT幻灯片转为HTML文件的实现思路
2021/06/11 Java/Android
苹果macOS 13开发者预览版Beta 8发布 正式版10月发布
2022/09/23 数码科技