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); 
}
相关推荐
William Dawson几秒前
【Java Stream 流:高效、优雅的集合操作 ✨】
java·windows·python
疯狂成瘾者2 分钟前
SseEmitter
java
wfbcg3 分钟前
每日算法练习:LeetCode 167. 两数之和 II - 输入有序数组 ✅
算法·leetcode·职场和发展
剑穗挂着新流苏3124 分钟前
208_深度学习的鲁棒性之美:暂退法(Dropout)原理与实战
开发语言·pytorch·python·深度学习
小草cys11 分钟前
review202604032342
开发语言·php
Vic1010112 分钟前
Java深度分页性能优化:从问题本质到生产实践
java·adb·性能优化
爱丽_12 分钟前
Redis 持久化与高可用:RDB/AOF、主从复制、哨兵与一致性取舍
java·后端·spring
一只小阿乐13 分钟前
js流式模式输出 函数模式使用
开发语言·javascript·ai·vue·agent·流式数据·node 服务
伯远医学14 分钟前
如何判断提取的RNA是否可用?
java·开发语言·前端·javascript·人工智能·eclipse·创业创新
A~MasterYi18 分钟前
深入理解 Microscaling (MX) 格式:从浮点基础到共享指数矩阵乘法
算法·矩阵