天天看点

改善C#程序157个建议——建议37学习笔记:使用Lambda表达式代替方法和匿名方法

 class Program

   {

       static void Main(string[] args)

       {

           Func<int, int, int> add = Add;

           Action<string> print = Print;

           print(add(1, 2).ToString());

           Console.ReadKey();

       }

       static int Add(int i, int j)

           return i + j;

       static void Print(string msg)

           Console.WriteLine(msg);

   }

从以上的方法中注意到:Add方法和Print方法只有一条语句,因此使用匿名方法改写。

static void Main(string[] args)

         Func<int,int ,int> add=new Func<int, int, int >(delegate(int i,int j)

         { return i + j; });

           Action<string> print = new Action<string>(delegate (string msg)

             { Console.WriteLine(msg); });

Lambda表达式实现:

static void Main(string[] args)

           Func<int, int, int> add = (i, j) => { return i + j; };

           Action<string> print = (msg) =>

           { Console.WriteLine(msg); };