c#闭包的概念是甚么
在 C# 中,闭包是指可以捕获其封闭范围(作用域)内变量的匿名方法或 Lambda 表达式。当一个方法或 Lambda 表达式援用了外部作用域中的变量时,这个方法或表达式就构成了一个闭包。
闭包允许在定义时捕获外部变量,并在稍后履行时使用这些变量的值。这意味着即便创建闭包的代码块已离开作用域,闭包依然可以访问和操作外部作用域中的变量。
下面是一个简单的示例,演示了怎样在 C# 中创建一个闭包:
using System;
class Program
{
static void Main()
{
int outerVariable = 5;
Func<int, int> adder = (int x) => x + outerVariable;
int result = adder(10);
Console.WriteLine(result); // 输出:15
}
}
在这个示例中,我们定义了一个包括闭包的匿名方法 adder
,它捕获了外部作用域中的变量 outerVariable
。闭包在调用时会将传入的参数与捕获的外部变量相加,并返回结果。
TOP