delegate的使用

定义:  delegate void Action();
实例化:Action eat = new Action(EatAc);//EatAc为一个方法
调用:  eat();//实际上C#编译器知道eat是一个delegate,所以它生成的是调用eat的Invoke方法,实际上可以直接调用eat.Invoke();
也可以使用+=和-=来绑定多个方法,如:
eat += new Action(Eat);
eat();
使用匿名代理实例化:
eat += delegate() { Console.WriteLine("Eat more!"); };
eat();
可以更简化上面匿名代理:
eat += delegate { Console.WriteLine("Eat more!"); };
eat();
使用匿名代理方法,方法体里面可以直接使用其代码块所在的方法的临时变量和方法参数:
string name = "apple";
Action eat = new Action(Eat);
eat += delegate { Console.WriteLine("Eat " + name ); }; //delegate(System.Data.Common.DbTransaction pTran) { strTran = pTran.Connection.ConnectionString; }带参数
eat();

 

 

注:本随笔为本人总结后发布,如果有雷同,纯属巧合
本人邮箱:freedomjim@gmail.com,如有疑问和交流欢迎发邮件过来一起讨论,一起成长,谢谢!

posted @ 2010-06-23 11:12  自由之风  阅读(360)  评论(0编辑  收藏  举报