您的位置:首页 > 编程语言 > C#

C#委托学习笔记

2012-04-15 18:37 267 查看
定义

C#委托实际上是一种引用类型,它类似函数指针,使我们可以将方法当作参数来传递。

本质

委托使用简单,然而实际情况却很复杂,只是编译器和CLR做了大量的工作来隐藏它的复杂性。

我们看看编译器和CLR如何实现委托

创建一个委托

public delegate void DrinkWater(int x);

通过Reflector反编译后





internal class DrinkWater : System.MulticastDelegate
{
//构造器
public DrinkWater(Object object, IntPtr method);

//方法的原型与源代码制定的相同
public virtual void Invoke(Int32 value);

//允许异步回调的方法
public virtual IAsyncResult BeginInvoke(
Int32 value, AsyncCallback callback, Object object);

public virtual void EndInvoke(IAsyncResult result);
}


例子

结果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: