c# lambda怎么使用外部变量

1286
2024/2/5 20:47:14
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在C#中,如果要在lambda表达式中使用外部变量,可以通过捕获变量的方式来实现。有两种方式可以捕获变量:

1.使用引用捕获:在lambda表达式中使用外部变量时,会以引用的方式来捕获变量。这意味着,如果在lambda表达式外部修改了变量的值,那么在lambda表达式中也会反映出来。

int x = 10;
Action action = () => Console.WriteLine(x);
x = 20;
action(); // 输出结果为20

2.使用值捕获:在lambda表达式中使用外部变量时,会以值的方式来捕获变量的当前值。这意味着,如果在lambda表达式外部修改了变量的值,那么在lambda表达式中不会受到影响。

int x = 10;
Action action = () =>
{
    int y = x;
    Console.WriteLine(y);
};
x = 20;
action(); // 输出结果为10

需要注意的是,对于引用类型的变量,无论是使用引用捕获还是值捕获,都会捕获变量的引用。这意味着,如果在lambda表达式中修改了引用类型变量的属性或字段,会影响到原始变量。

List<int> numbers = new List<int> { 1, 2, 3 };
Action action = () =>
{
    numbers.Add(4);
    Console.WriteLine(numbers.Count);
};
action(); // 输出结果为4
Console.WriteLine(numbers.Count); // 输出结果为4

综上所述,使用外部变量的lambda表达式可以通过引用捕获或值捕获来实现,具体取决于变量的类型和需求。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: c#中return语句的用法是什么