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); 
}
相关推荐
Doubbbbbbble云几秒前
图算法中的剪枝技术与启发式优化分析4
算法·机器学习·剪枝
鶴哥只手遮天3 分钟前
CFL3D深度解析:NASA经典CFD求解器的架构、算法与工程实践
算法
她说彩礼65万5 分钟前
C语言 单引号与双引号
java·服务器·c语言
维克兜率天5 分钟前
【维克】价差交易实战:配对交易的核心参数设置
大数据·笔记·算法·量化
dtq04245 分钟前
数据结构 - 树的概念
c语言·数据结构·学习·算法
晒太羊的猫6 分钟前
hot100多维动态规划刷题
算法·动态规划
知守观6 分钟前
百万级数据导出OOM:POI的坑与EasyExcel的流式写入实战(附内存对比)
java·后端
“AI国潮设计-小江”9 分钟前
Python实战 | SDXL批量生成“潮汕英歌舞”国潮甜品IP,附核心Prompt与商用授权思路
开发语言·人工智能·python·prompt·aigc
Dream it possible!10 分钟前
LeetCode_热题100_知识点总结
算法·leetcode·职场和发展
鶴哥只手遮天11 分钟前
从像素到战场:红外场景仿真引擎的核心技术深度解析
算法