深入理解c#中的委托
来源:互联网 发布:java utf8编码转换gbk 编辑:程序博客网 时间:2024/05/17 22:50
委托的用处:回调函数。 回调函数是一种非常有用的编程机制,.net framework通过委托提供了一种回调函数机制,不同于其它平台的回调机制 ,委托提供了多得多的阿勒,委托确保回调方法是类型安全的,还允许顺序调用多个方法并支持调用静态方法和实例方法
比较:在非托管的C C++中,非成员函数的地址只是一个内存地址,这个地址不拾任何额外的信息,比如函数期望收到的参数个数,参数类型,函数的返回值类型,以及函数的调用 契约,即非托管C C++回调函数不是类型安全的,但确实是一种非常轻量级的机制, .net framework中的回调函数和非托管windows 编程序环境中的回调函数一样有用,一样普遍,但是.net framework提供了一个称为委托的类型安全的机制。
c#和clr都是允许引用类型的协变性和逆变性,协变性是指方法返回 从委托的返回类型派生的一个类型,尼变性是指方法获取的参数 可以是委托的参数 类型的蕨类,协变与逆变只针对引用类型,因为值类型与void 这所以不支持协变和逆变,是因为它们的存储结构是变化的,而引用类型的存储结构始终是一个指针。
委托的工作原理: 表面上委托看似很简单,但编译器和clr在幕后做了大量工作来隐藏复杂性,下面详细阐述之
internal delegate void Feedback(Int32 value)
看到这行后,编译器会像下面一个定义一个完整的类
internal class Feedback:System.MulticastDelegate
{
public Feedback(Object obj, intPtr method);
public virtual void Invoke(Int32 value);
public virtual IAsyncResult BeginInvoke(Int32 value,AsyncCallback callback, Object obj);
public virtual void EndInvoke(IAsyncResult result);
}
- 深入理解c#中的委托
- 深入理解C#中的委托
- 深入理解C#中的委托和事件
- 深入理解C#中的委托和事件
- 深入理解C#中的委托和事件:委托的定义
- 深入理解C#编程中的组件-事件-委托
- 深入理解C#编程中的组件-事件-委托
- 深入理解C#编程中的组件-事件-委托
- 深入理解C#编程中的组件-事件-委托
- 理解C#中的委托[翻译]
- 理解C#中的委托(Deligate)
- 举例理解C#中的委托
- 深入理解C#委托的实质
- 深入理解C#委托的实质
- 深入理解C#委托及原理
- 深入理解C#委托及原理
- 深入理解C#委托及原理
- 深入理解C#委托的实质
- 开通csdn的博客啦 java 自学之路
- Visual Studio 2008环境与VC6.0的环境存在着比较大的区别
- android的HTTP通信,可保持session
- 身份管理实例
- Hibernate详解
- 深入理解c#中的委托
- linux脚本编写基础(环境变量、shell流程控制)
- DAPM之三:audio paths与asound.conf
- 面向领域编程思想总结
- android上的图片缩放处理
- ubuntu中提示找到make命令的解决方案
- java是大特征
- android 获取语言
- 2011.12.22 poj1170 DP