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); } } }