c# 闭包方法
时间: 2023-07-26 11:06:21 浏览: 168
c#闭包使用方法示例
在 C# 中,闭包是指一个函数(或 lambda 表达式)可以访问其外部作用域中的变量。这意味着,当您在函数内部使用一个变量时,即使该变量已经超出了其作用域,函数也可以访问该变量。
下面是一个示例:
```
public class ClosureExample
{
public static void Main()
{
int x = 5;
Func<int, int> addX = (y) => x + y;
Console.WriteLine(addX(10)); // 输出 15
x = 10;
Console.WriteLine(addX(10)); // 输出 20,因为函数中的 x 引用了外部作用域中的 x,而不是只使用了 x 的初始值
}
}
```
在上面的示例中,我们定义了一个名为 `addX` 的函数,它使用 lambda 表达式来定义。该函数接受一个整数参数 `y`,并返回 `x + y`。注意,在 lambda 表达式中,我们引用了外部作用域中的变量 `x`。
然后,我们分别调用 `addX(10)` 两次,并在调用之间更改了 `x` 的值。由于 `addX` 是一个闭包,它可以访问 `x` 的当前值,因此第二次调用 `addX(10)` 将返回 `20`,而不是 `15`。
阅读全文