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); 
}
相关推荐
2501_94442412几秒前
Flutter for OpenHarmony游戏集合App实战之俄罗斯方块七种形状
android·开发语言·flutter·游戏·harmonyos
STARSpace88884 分钟前
SpringBoot 整合个推推送
java·spring boot·后端·消息推送·个推
码农幻想梦5 分钟前
实验八 获取请求参数及域对象共享数据
java·开发语言·servlet
lly20240625 分钟前
C++ 实例分析
开发语言
a努力。28 分钟前
2026 AI 编程终极套装:Claude Code + Codex + Gemini CLI + Antigravity,四位一体实战指南!
java·开发语言·人工智能·分布式·python·面试
Dylan的码园32 分钟前
功能包介绍 : calendar
java·jvm·eclipse
二川bro39 分钟前
Java集合类框架的基本接口有哪些?
java·开发语言·python
zhangfeng11331 小时前
PowerShell 中不支持激活你选中的 Python 虚拟环境,建议切换到命令提示符(Command Prompt)
开发语言·python·prompt
huizhixue-IT1 小时前
2026年还需要学习RHCE 吗?
开发语言·perl
zUlKyyRC1 小时前
LabVIEW 玩转数据库:Access 与 SQL Server 的实用之旅
开发语言