1.起因
现在大量的地方用到lambda,读起来总有是懂非懂的感觉,于是思考,lambda的本质是什么呢,是个函数,那么用到lambda的地方,就是用的函数。也就是说需要的是一个简单的小函数,这时候我们不需要特别的定义,简单的写一个函数就可以了。
程序的本质是函数,函数的本质就是参数的返回值,而lambda表达式及大的丰富了,参数的类型,应该说是匿名对象+ambda极大的丰富了参数的类型。这时候对象中出现了大量的函数。这带来了可读性变差,单是我今天理解了。任何逻辑如果把lambda当做函数去理解,程序的一切逻辑还都是函数+函数+函数,组成程序的基本元素并没有变,还是函数。
2.代码
using System;
namespace lambda表达是做参数实验
{
delegate int DgAdd(int a, int b);
class Program
{
static void Main(string[] args)
{
Console.WriteLine("lambdab表达式做参数实验");
Program p = new Program();
p.Main();
Console.ReadKey();
}
private void Main() {
A a = new A();
//用回调函数
int b = a.fun(add);
Console.WriteLine("用回调函数:" + b);
int d = 7;
//用lambda表达式
int c = a.fun((int ina,int inb)=> { return ina + inb; });
Console.WriteLine("用lambda表达式:" + c);
}
int add(int a, int b) {
return a + b;
}
}
class A {
public int fun(DgAdd dgAdd) {
int a = 5;
int b = 6;
return dgAdd(a, b);
}
}
}
3.运行结果