c#

c#闭包的概念是什么

小亿
107
2024-03-28 17:40:08
栏目: 编程语言

在 C# 中,闭包是指可以捕获其封闭范围(作用域)内变量的匿名方法或 Lambda 表达式。当一个方法或 Lambda 表达式引用了外部作用域中的变量时,这个方法或表达式就形成了一个闭包。

闭包允许在定义时捕获外部变量,并在稍后执行时使用这些变量的值。这意味着即使创建闭包的代码块已经离开作用域,闭包仍然可以访问和操作外部作用域中的变量。

下面是一个简单的示例,演示了如何在 C# 中创建一个闭包:

```csharp

using System;

class Program

{

static void Main()

{

int outerVariable = 5;

Func adder = (int x) => x + outerVariable;

int result = adder(10);

Console.WriteLine(result); // 输出:15

}

}

```

在这个示例中,我们定义了一个包含闭包的匿名方法 `adder`,它捕获了外部作用域中的变量 `outerVariable`。闭包在调用时会将传入的参数与捕获的外部变量相加,并返回结果。

0
看了该问题的人还看了