static void Main(string[] args) { #region 没有参数没有返回值的方法使用lambda表达式 MyDelegate md = () => { Console.WriteLine("lambda表达式"); }; md(); Console.ReadKey(); #endregion #region 参数的lambda表达式 Mydelegate md2 = m => { Console.WriteLine(m); }; md2("有参数的lambda表达式"); Console.ReadKey(); #endregion #region 参数有返回值的lambda表达式 AddDelegate1 ad = (arr) => { for (int i = 0; i < arr.Length; i++) { Console.WriteLine(arr[i]); } return(arr.Sum()); }; int a = ad(1, 2, 3, 4, 5); Console.WriteLine(a); Console.ReadKey(); #endregion }
public static void Main0(string[] args) { // 匿名方法:匿名方法不能直接在类中定义,而是在给委托变量赋值时,需要赋值一个方法,此时可以“现做现卖”,定义一个匿名方法给该委托 //无参数、无返回值的匿名方法 MyDelegate md = delegate() { Console.WriteLine("Hello,World!"); }; //无参数、无返回值的 lambda(λ) 表达式 md += () => { Console.WriteLine("lambda!"); }; md(); //有参数、无返回值的匿名方法 MyDelegate1 md1 = delegate(string msg) { Console.WriteLine(msg); }; md1("Hello,World!2"); //有参数、无返回值的 lambda 表达式:lambda 表达式不需要表明数据类型,因为委托已经限定了参数的数据类型 MyDelegate1 md2 = msg => { Console.WriteLine(msg); }; md2("hello,Lambda!"); //有参数、有返回值的匿名方法 AddDelegate add = delegate(int n1, int n2, int n3) { return(n1 + n2 + n3); }; Console.WriteLine(add(10, 20, 30)); //有参数、有返回值的 lambda 表达式 AddDelegate add1 = (n1, n2, n3) => { return(n1 + n2 + n3); }; Console.WriteLine(add1(1, 2, 3) + "lambda!"); AddDelegate1 add2 = (arr) => { for (int i = 0; i < arr.Length; i++) { Console.WriteLine(arr[i]); } return(arr.Sum()); }; Console.WriteLine(add2(3, 4, 5) + " lambda!!"); }
static void Main(string[] args) { //匿名方法 //匿名方法不能直接在类中定义,而是在给委托变量赋值的时候,需要 //赋值一个方法,此时可以“现做现卖”,定义一个匿名方法传递给该委托。 //MyDelegate md = M1; #region 无参数,无返回值的一个匿名方法。 //无参数,无返回值的一个匿名方法。 //MyDelegate md = delegate() //{ // Console.WriteLine("小鸟说早早。"); //}; //md(); //Console.ReadKey(); #endregion #region 无参数无返回值的方法使用(lambda)λ表达式 //MyDelegate md = () => { Console.WriteLine("lambda表达式!!"); }; //md(); //Console.ReadKey(); #endregion #region 参数无返回值的匿名方法 ////有参数无返回值的匿名方法 //MyDelegate1 md = delegate(string msg) //{ // Console.WriteLine("早上好" + msg); //}; //md("大家好!"); //Console.ReadKey(); #endregion #region 参数无返回值的lambda表达式 ////lambda表达式不需要传递数据类型,因为委托已经限定了数据类型。 //MyDelegate1 md = m => { Console.WriteLine(m); }; //md("你好,翻译挺好。"); //Console.ReadKey(); #endregion #region 参数,有返回值的匿名函数 //有参数,有返回值的匿名函数 //AddDelegate ad = delegate(int n1, int n2, int n3) //{ // return n1 + n2 + n3; //}; //int n = ad(10, 15, 20); //Console.WriteLine(n); //Console.ReadKey(); #endregion #region 参数有返回值的lambda表达式 //AddDelegate ad = (x, y, z) => { return x + y + z; }; //int r = ad(10, 20, 30); //Console.WriteLine(r); //Console.ReadKey(); #endregion //可变参数lambda表达式 AddDelegate1 ad1 = (arr) => { for (int i = 0; i < arr.Length; i++) { Console.WriteLine(arr[i]); } return(arr.Sum()); }; int x = ad1(1, 2, 3, 4, 5); Console.WriteLine(x); Console.ReadKey(); }