C#__匿名方法和Lambda表达式

    class Program
    {
        static void Main(string[] args)
        {
            // 匿名方法:方法没有名字
            Func<int, int, int> plus = delegate (int a, int b)
              {
                  return a + b;
              };
            // 这里相当于直接把要引用的方法直接写在后面
            // 优点:减少了要编写的代码,减少代码的复杂性

            int res = plus(10, 2);
            Console.WriteLine(res); // 12

            // Lambda表达式(匿名方法的简写)
            Func<int, int, int> plus2 = (a, b) => { return a + b; };
            // 只有一条语句时可以再简写
            Func<int, int, int> plus3 = (a, b) => a + b;
            // 只有一个参数时,可以再简写
            Func<double, double> plus4 = a => a * a;

            // 可以访问外部变量(需要谨慎)
            int c = 5;
            Func<int, int> f = x => x + c;
            Console.WriteLine(f(10)); // 15
        }
    }

猜你喜欢

转载自blog.csdn.net/qq_57233919/article/details/132248259