c# 循环内使用匿名函数关联变量的问题

cs 复制代码
for (int i = 0; i < dict.Count; i++) 
{ 
    Action action = () => Test(i, true); 
}

由于闭包(closures)的行为,循环内使用匿名函数关联变量i会导致问题。运行此循环后,所有action将使用的是限定范围内i的最终值,而非每次迭代时的值。

要解决此问题,可以在每次迭代中引入新的局部变量,下面是示例:

cs 复制代码
for (int i = 0; i < dict.Count; i++) 
{ 
    var j = i;
    Action action = () => Test(j, true); 
}
相关推荐
云析赢指标公式网424 分钟前
文华WH6布林轨道均线强弱共振指标公式
前端·算法
承渊政道26 分钟前
【Python编程—从入门到实践】(Python字典:从基础语义到现代工程实践)
开发语言·python·pycharm·字典·嵌套
学编程就要猛27 分钟前
流式编程及Spring中SSE实现
java·后端·spring·流式编程
随遇而安zx44 分钟前
【多线程】---ConcurrentHashMap 源码解析
java·多线程·并发
luj_17681 小时前
一线一区一变破解人盯人防守密码
开发语言·网络·c++·经验分享·算法
不才不才不不才1 小时前
Spring 源码系列(27): @Transactional 七大失效场景与源码归因
java·后端·spring
随遇而安zx1 小时前
【多线程】---线程池 ThreadPoolExecutor 原理与调优
java·线程池·多线程
抠脚小弟1 小时前
WebSocketServer 使用详解:从入门到实战
java·spring·websocketserver
随便做点啥1 小时前
32卡64G-910B4-16后端集群部署报告
java·大数据·运维
名字还没想好☜1 小时前
Python 字符编码实战:encode/decode、UnicodeDecodeError 与 open 的 encoding 坑
开发语言·后端·python·编程语言