在 Lambda 表达式中,可以通过捕获外部变量来访问外部作用域中的变量。在 C# 中,Lambda 表达式捕获外部变量的方式有两种:
int x = 10;
Func<int, int> func = y => x + y;
Console.WriteLine(func(5)); // 输出 15
在这个例子中,Lambda 表达式捕获了外部变量 x,并在表达式中使用了它。
ref
或 out
关键字来显示地捕获外部变量。例如:int x = 10;
Action<int> action = (ref int y) => y += x;
int result = 5;
action(ref result);
Console.WriteLine(result); // 输出 15
在这个例子中,Lambda 表达式使用 ref
关键字显示地捕获了外部变量 result,并修改了它的值。
需要注意的是,捕获外部变量时需要注意外部变量的生命周期,确保外部变量在 Lambda 表达式执行时仍然有效。