Lambda C#怎样捕获外部变量

   2024-10-05 6470
核心提示:在 Lambda 表达式中,可以通过捕获外部变量来访问外部作用域中的变量。在 C# 中,Lambda 表达式捕获外部变量的方式有两种:隐式

在 Lambda 表达式中,可以通过捕获外部变量来访问外部作用域中的变量。在 C# 中,Lambda 表达式捕获外部变量的方式有两种:

隐式捕获:Lambda 表达式可以隐式地捕获外部变量,即直接引用外部变量而不需要额外的语法。例如:
int x = 10;Func<int, int> func = y => x + y;Console.WriteLine(func(5)); // 输出 15

在这个例子中,Lambda 表达式捕获了外部变量 x,并在表达式中使用了它。

显示捕获:如果需要在 Lambda 表达式中修改外部变量的值,需要使用 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 表达式执行时仍然有效。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号