C#从3.0开始支持匿名方法及Lambda表达式。
1 匿名方法
AddDelegate del = delegate(int i, int j)
{
return i + j;
};
Console.WriteLine(del(5, 6));
使用匿名方法,要注意其语法特性。
2 Lambda表达式
可以使用Lambda表达式进一步简化上面的代码:
AddDelegate d = (i, j) => {return i + j; };
Console.WriteLine(d(5, 6));
其中,参数i,j类型可以省略,编译器会自动推断。
可以结合泛型委托使用Lambda表达式,如:
Func<int, int, int> func = (i, j) => { return i + j; };
Console.WriteLine(func(5,6));
如果没有输入参数时,可以直接写(),如:
Action action = () => { Console.WriteLine("Hello,World!"); };
action();