C#中循环中的捕获变量
我遇到了一个关于C#的有趣问题。我有如下代码。
List<Func<int>> actions = new List<Func<int>>();int variable = 0;while (variable < 5){
actions.Add(() => variable * 2);
++ variable;}foreach (var act in actions){
Console.WriteLine(act.Invoke());}我希望它输出0,2,4,6,8。但是,它实际输出5个10。
似乎是由于所有操作都涉及一个捕获的变量。结果,当它们被调用时,它们都具有相同的输出。
有没有办法解决这个限制,让每个动作实例都有自己的捕获变量?
蝴蝶不菲
呼啦一阵风
慕婉清6462132
随时随地看视频慕课网APP