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); 
}
相关推荐
20岁30年经验的码农15 小时前
Spring Cloud Gateway 网关技术文档
java
likuolei16 小时前
XML DOM 节点类型
xml·java·服务器
春日见17 小时前
丝滑快速拓展随机树 S-RRT(Smoothly RRT)算法核心原理与完整流程
人工智能·算法·机器学习·路径规划算法·s-rrt
Code小翊17 小时前
”回调“高级
算法·青少年编程
云里雾里!17 小时前
力扣 977. 有序数组的平方:双指针法的优雅解法
算法·leetcode·职场和发展
ZHE|张恒18 小时前
Spring Bean 生命周期
java·spring
夏天的味道٥19 小时前
@JsonIgnore对Date类型不生效
开发语言·python
q***385119 小时前
SpringCloud实战十三:Gateway之 Spring Cloud Gateway 动态路由
java·spring cloud·gateway
小白学大数据20 小时前
Python爬虫伪装策略:如何模拟浏览器正常访问JSP站点
java·开发语言·爬虫·python
一只侯子20 小时前
Face AE Tuning
图像处理·笔记·学习·算法·计算机视觉