C# 委托列子

来源:互联网 发布:java double 和float 编辑:程序博客网 时间:2024/06/02 04:26
namespace CSharp{    delegate int MyDelegate(string name);    delegate void MyDelegate2(string name, int i);    class Program    {        static int fun(string name)        {            Console.WriteLine(name);            return 0;        }        static int fun_lf(string name_lf)        {            Console.WriteLine(name_lf + "_lf");            return 0;        }        static void Cout(string name, MyDelegate F)        {            F(name);        }        static void Main(string[] args)        {            //1,回调            Cout("lwf0", fun_lf);            //2,new 初始化            MyDelegate Fun = new MyDelegate(fun);            Fun += fun_lf;            Fun("lwf1");            //3,不使用new初始化            MyDelegate Fun1;            Fun1 = fun;            Fun1 += fun_lf;            Fun1("lwf2");            //4,+,-            Fun1 -= fun;            Fun1("lwf3");            //5,匿名方法            Fun = delegate(string name) { Console.WriteLine(name); return 0; };            Fun("LWf_anonymous");            //6,lambda表达式            MyDelegate funLambda = (string name) => { Console.WriteLine(name); return 0; };            funLambda("LWF_lambda");            //7,简写lambda            funLambda = name => { Console.WriteLine(name); return 0; };            funLambda("shortHandLambda");            //8,简写多参数lambda表达式            MyDelegate2 mu_ar_la_f = (name, i) => { Console.Write(name + ", "); Console.WriteLine(i.ToString()); };            mu_ar_la_f("lwf_mu_ar_la_f", 1);        }    }}

0 0