私は頭を動かそうとしていますが、ここで何が起こりますか? コンパイラはどのようなコードを生成しますか?
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();
}
出力: 10 10 .. 10
thisによると、繰り返しごとに ActionHelper の新しいインスタンスが作成されます。したがって、その場合、1..10 を出力する必要があると思います。コンパイラがここで行っていることの疑似コードを教えてもらえますか?
ありがとう。