代理delegate到lamda的演化示例

using System;

namespace ConsoleApp1
{
    public class Program
    {
        private delegate int Add(int a, int b);
        public static void Main(string[] args)
        {
            Add add1 = new Add(AddPlus);
            int z = add1(2, 6);
            Console.WriteLine(z);

            add1 = new Add(delegate (int a, int b) { return a + b; });
            z = add1(2, 6);
            Console.WriteLine(z);


            Func<int, int, int> add2 = new Func<int, int, int>(delegate (int a, int b) { return a + b; });
            Console.WriteLine(add2(1, 9));

            add2 = delegate (int a, int b) { return a + b; };
            Console.WriteLine(add2(18, 9));

            add2 = (int a, int b) => { return a + b; };
            Console.WriteLine(add2(15, 9));

            add2 = (a, b) => { return a + b; };
            Console.WriteLine(add2(15, 9));

            add2 = (a, b) => a + b;
            Console.WriteLine(add2(11, 9));


            Console.Read();
        }


        public static int AddPlus(int a, int b)
        {
            return a + b;
        }

        public static int Reduce(int a, int b)
        {
            return a - b;
        }

    }
}

 

posted @ 2016-11-29 08:43  森林王子  阅读(361)  评论(0编辑  收藏  举报