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); 
}
相关推荐
pilaf19903 分钟前
Rust练习题
开发语言·后端·rust
asdfg12589636 分钟前
replace(/,/g, ‘‘);/\B(?=(\d{3})+(?!\d))/;千分位分隔
开发语言·前端·javascript
透明的玻璃杯6 分钟前
VS2015 调用QT5.9.9 的库文件 需要设置QT库的路径
开发语言·qt
GoldenSpider.AI6 分钟前
uv——极速、统一的Python包和项目管理器
开发语言·python·uv
无限进步_7 分钟前
C++初始化列表详解:语法、规则与最佳实践
java·开发语言·数据库·c++·git·github·visual studio
vx_bisheyuange9 分钟前
基于SpringBoot的交通在线管理服务系统
java·spring boot·后端·毕业设计
Hello.Reader14 分钟前
FF4J 用特性开关玩转 Java 应用灰度与发布
java·开发语言
某林21215 分钟前
在slam建图中为何坐标base_link,laser,imu_link是始终在一起的,但是odom 会与这位三个坐标在运行中产生偏差
人工智能·算法
想看一次满天星16 分钟前
阿里140-n值纯算
爬虫·python·算法·网络爬虫·阿里140
Keep__Fighting16 分钟前
【机器学习:逻辑回归】
人工智能·python·算法·机器学习·逻辑回归·scikit-learn·matplotlib