delegate与普通函数的区别
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#类型里是十分安全的.在声明代表元时,只要指定代表元指向的原型的类型,它不能有返回值,也不能带回输出类型的参数.代表元可以封装一个静态方法,也可以封装一个非静态方法.
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#类型里是十分安全的.在声明代表元时,只要指定代表元指向的原型的类型,它不能有返回值,也不能带回输出类型的参数.代表元可以封装一个静态方法,也可以封装一个非静态方法.
【delegate与普通函数的区别】相关文章
2. static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
4. Oracle中delete,truncate和drop的区别
6. 存储过程和函数的区别
8. 关联、聚合(Aggregation)以及组合(Composition)的区别
9. New delete 与malloc free 的联系与区别
10. Java 中访问数据库的步骤?Statement 和PreparedStatement 之间的区别?
本文来源:https://www.mianshiwenti.com/a12797.html
进入下载页面
上一篇:请解释接口的显式实现有什么意义
下一篇:新大陆软件面试题
﹝delegate与普通函数的区别﹞相关内容
- 简述你对Statement,PreparedStatement,CallableStatement的理解
- 类成员函数的重载、覆盖和隐藏区别
- 第二层交换机和路由器的区别?第三层交换机和路由器的区别?
- 编写类String 的构造函数、析构函数和赋值函数
- 编写类String的构造函数、析构函数和赋值函数
- 介绍一下Prototype的$()函数,$F()函数,$A()函数都是什么作用?
- Collection和Collections的区别
- Java的类可以定义为Protected或者Private得吗
- Linux Interview Questions For software testers
- PHP两种查询函数array/row的区别