C# lambda 表达式 委托

lambda表达式与js相似

1、完整版本(未省略)

using System;


namespace ClassAndIn
{
    internal class Program
    {
        static void Main(string[] args) {

            Func<int, int, int> func = new Func<int, int, int>((a, b) => { return a + b; });
            int result = func(10, 20);
            Console.WriteLine(result);

            Func<double, double, double> func1 = new Func<double, double, double>((a, b) => { return a* b; });
            double result2 = func1(3.0, 4.0);
            Console.WriteLine(result2);
            Console.WriteLine(result2.GetType().Name);
        }
    }
}

2、省略写法

using System;


namespace ClassAndIn
{
    internal class Program
    {
        static void Main(string[] args) {
            Func<int, int, int> func = (a, b) => { return a + b; };
            int result = func(20, 40);
            Console.WriteLine(result);

            Func<double, double, double> func1 = (x, y) => { return x * y; };
            double result1 = func1(3.0, 4.0);
            Console.WriteLine(result1);
            Console.WriteLine(result1.GetType().Name);
        }
    }

}

 三、lambda + 委托 + 泛型

using System;


namespace ClassAndIn
{
    internal class Program
    {
        static void Main(string[] args) {
            DoSome<int>((a, b) => { return a + b; }, 10, 20);
        }

        static void DoSome<T>(Func<T, T, T> func, T x, T y) {
            T reslut = func(x, y);
            Console.WriteLine(reslut);
        }
    }
}

 

posted @ 2025-06-14 15:09  市丸银  阅读(9)  评论(0)    收藏  举报