gpt4 book ai didi

c# - 循环中的 Lambda 变量捕获 - 这里发生了什么?

转载 作者:太空狗 更新时间:2023-10-29 22:07:26 25 4
gpt4 key购买 nike

<分区>

我正在努力思考,这里发生了什么?编译器生成什么样的代码?

public static void vc()
{
var listActions = new List<Action>();

foreach (int i in Enumerable.Range(1, 10))
{
listActions.Add(() => Console.WriteLine(i));
}

foreach (Action action in listActions)
{
action();
}
}

static void Main(string[] args)
{
vc();
}

输出:1010..10

根据 this ,每次迭代都会创建一个新的 ActionHelper 实例。所以在那种情况下,我认为它应该打印 1..10。有人可以给我一些编译器在这里做什么的伪代码吗?

谢谢。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com