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); 
}
相关推荐
然我10 分钟前
链表指针玩不转?从基础到双指针,JS 实战带你破局
前端·数据结构·算法
没有羊的王K16 分钟前
SSM框架学习DI入门——day2
java·spring boot·学习
公子绝17 分钟前
JAVA学习笔记 使用notepad++开发JAVA-003
java·学习·notepad++·java开发环境
EndingCoder18 分钟前
算法与前端的可访问性
前端·算法·递归·树形结构
似璟如你25 分钟前
Java开发八股文之基础篇+spring+集合
java·开发语言·面试
本杰明15226 分钟前
2025/7/14——java学习总结
java·开发语言·学习
2345VOR32 分钟前
【C#地图显示教程:实现鼠标绘制图形操作】
开发语言·c#·计算机外设·地图显示鼠标交互
开开心心_Every37 分钟前
可增添功能的鼠标右键优化工具
开发语言·pdf·c#·计算机外设·电脑·音视频·symfony
星释38 分钟前
优雅的Java:01.数据更新如何更优雅
java·开发语言·spring boot
The_era_achievs_hero39 分钟前
微信131~140
开发语言·javascript·微信