闭包
通过Lambda表达式访问Lambda表达式块外部的变量,称为闭包。
private static void Main()
{
// 闭包
int val = 10;
Func<int,int> action = (params1) =>
{
return params1+ val;
};
Console.WriteLine(action(1));
Console.WriteLine(val);
}
lambda表达式访问闭包val,然后可以输出结果是11,val的值是10。
private static void Main()
{
// 闭包
int val = 10;
Func<int,int> action = (params1) =>
{
val = 20;
return params1+ val;
};
Console.WriteLine(action(1));
Console.WriteLine(val);
}
lambda表达式访问闭包val,然后修改val的值为20,则调用委托后输出结果是21,val的值是20。
同时,lambda表达式在编译的时候,编译