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); 
}
相关推荐
one3128 分钟前
高精度MEMS电容式倾角传感器:原理、结构与Python三维可视化
开发语言·python
程序员小八77717 分钟前
Go 语言特性
开发语言·后端·golang
元启数宇41 分钟前
幕墙AI设计算法逻辑:元启数宇如何智能分格
人工智能·算法
luteres44 分钟前
Spring学习笔记
java·后端·spring
宵时待雨1 小时前
优选算法专题16:多源BFS
算法·宽度优先
南城以南溫暖如初1471 小时前
从零搭建24小时自助健身系统:技术选型与核心模块实战
java·spring boot·redis·mysql·vue·mybatis
重生之后端学习1 小时前
53. 最大子数组和[中等]✅
java·数据结构·算法·leetcode·职场和发展
XS0301061 小时前
【无标题】
java·tomcat·maven·intellij-idea
陈皮波比茶1 小时前
java日志框架
java
INGNIGHT1 小时前
1908 · 布尔表达式求值(stack单调栈&dfs)
开发语言·c++·算法