C#3.0笔记(一)预备知识之Delegate
2009-04-06 08:24:13 来源:WEB开发网另外定义了一个辅助方法:
public static void DisplayDelegateInfo(Delegate del)
{
foreach (Delegate d in del.GetInvocationList())
{
Console.WriteLine("Method Name:{0}", d.Method.Name);
Console.WriteLine("Target is:{0}", d.Target);
}
}
调用:
static void Main(string[] args)
{
CaculateClient caClient =new CaculateClient();
Simple.Caculate ca = new Simple.Caculate(caClient.Add);
Console.WriteLine("1+1={0}",ca(1,1));
ca += new Simple.Caculate(caClient.Subtract);
Console.WriteLine("Result:{0}", ca(1, 1));
Simple.DisplayDelegateInfo(ca);
Console.Read();
}
我们可以看到下面的结果:
图片看不清楚?请点击这里查看原图(大图)。
小结
现在我们基本上知道Delegate的原理,已经基本的实现,但是我们并没有实现一些高级的话题,毕竟Caculate还只是一个玩具,呵呵。下一篇中将会涉及到多播、复杂点的示例以及事件
出处: http://henllyee.cnblogs.com/
更多精彩
赞助商链接