C#之Lambda表达式

Lambda表达式其实就是匿名方法的进一步简写,也就是匿名方法的升级版。

Lambda表达式语法:

委托类型   变量 = ([参数列表])=> { 方法体; };

 

注意点:

1.=> 是Lambda 表达式特有符号,读作goes to

2.如果没有参数列表,()也不能省略,如:()=>

pro.noPad = () => { Console.WriteLine("我是Test01"); };

 

3.如果参数列表中只有一个参数,()可以省略

pro.Pad = str => { Console.WriteLine("我是{0}", str); };

 

4.如果方法体内只有一句代码,可以省略代码块符号,也就是不用写{ }

pro.Pad = (str) => Console.WriteLine("我是{0}", str); ;
pro.Pad = str =>  Console.WriteLine("我是{0}", str); ;

代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace anonymousMethods
{
    class Program 
    {        
        public delegate void noParameterDelegate();         //无参委托
        public delegate void parameterDelegate(string str); //有参委托
        
        public noParameterDelegate noPad;
        public parameterDelegate Pad;
 
        static void Main(string[] args)
        {
            Program pro = new Program();
 
            //老方法
            //pro.noPad = Test01;
            //pro.Pad = Test02;
            //pro.noPad();
            //pro.Pad("武武武");
 
            //匿名方法
            //pro.noPad = delegate () { Console.WriteLine("我是Test01"); };
            //pro.Pad = delegate (string str) { Console.WriteLine("我是{0}", str); };
 
            //Lambda表达式
            pro.noPad = () => { Console.WriteLine("我是Test01"); };
            pro.Pad = (str) => { Console.WriteLine("我是{0}", str); };
 
            //一下三句话每句都可以替换掉第35句,即注释上面的这句话
            //pro.Pad = str => { Console.WriteLine("我是{0}", str); };
            //pro.Pad = (str) => Console.WriteLine("我是{0}", str); ;
            //pro.Pad = str =>  Console.WriteLine("我是{0}", str); ;
 
            pro.noPad();
            pro.Pad("武武武");
 
            Console.ReadKey();
        }
 
        /*
        public static void Test01()
        {
            Console.WriteLine("我是Test01");
        }
 
        public static void Test02(string str)
        {
            Console.WriteLine("我是{0}",str);
        }*/
    }
}
posted @ 2019-12-13 08:44  惊风雨  阅读(459)  评论(0)    收藏  举报