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); 
}
相关推荐
有梦想的小何2 分钟前
Cursor AI 编程实战(篇一):Prompt 与案例总结
java·linux·prompt·ai编程
@我漫长的孤独流浪5 分钟前
计算机系统核心概念与性能优化全解析
算法·计算机外设
沐知全栈开发5 分钟前
jQuery Mobile 事件详解
开发语言
如竟没有火炬7 分钟前
接雨水22
数据结构·python·算法·leetcode·散列表
ʚ希希ɞ ྀ15 分钟前
二叉树的锯齿层序遍历
数据结构·算法
河阿里22 分钟前
SpringBoot:Spring Task定时任务完整使用教学
java·spring boot·spring
jiayong2322 分钟前
Tool Permission 与 Sandbox 的安全流水线:Agent 工具系统的工程边界
java·数据库·安全·agent
rururunu31 分钟前
Windows 下切换 Java 环境太复杂了,我做了个 cli 工具,可以快速安装,切换 Java 版本
java
知识分享小能手33 分钟前
R语言入门学习教程,从入门到精通,R语言获取数据 (8)
开发语言·学习·r语言