委托(1.0)
public int Sum(int a, int b)
{
return a+b;
}
public delegate int SumMethod(int a,int b);
public int ShowValue1()
{
SumMethod sum1 = new SumMethod(Sum);
//SumMethod sum1=Sum;
return sum1(1,2);
}
匿名委托(2.0)
public int ShowValue2()
{
SumMethod sum2 = delegate(int a, int b)
{
return a+b;
};
return sum2(1,2);
}
Lambda表达式(3.5)
public int ShowValue3()
{
Func<int,int,int> f = ( a,b) =>
{
return a + b;
};
return f(1,2);
}
语法:(参数列表)=>{方法体}
匿名委托和Lambda表达式的区别:
匿名委托的参数是固定类型,而Lambda表达式的参数是推断类型,是编译器根据上下文自动推断的。var也属于推断类型。