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); 
}
相关推荐
益达321几秒前
IDEA 整合 Git 版本控制:提交、分支管理与冲突解决实操
java·intellij-idea
lxp1997412 分钟前
PHP框架自带队列--更新中
开发语言·php
MoonBit月兔3 分钟前
海外开发者实践分享:用 MoonBit 开发 SQLC 插件(其三)
java·开发语言·数据库·redis·rust·编程·moonbit
苏州知芯传感4 分钟前
柔性抓取的“慧眼”:MEMS 3D视觉如何让机器人精准识别无序堆叠的复杂钣金件?
算法·3d·机器人·mems
问道飞鱼4 分钟前
【Rust编程知识】在 Windows 下搭建完整的 Rust 开发环境
开发语言·windows·后端·rust·开发环境
天呐草莓8 分钟前
企业微信运维手册
java·运维·网络·python·微信小程序·企业微信·微信开放平台
jllllyuz8 分钟前
C# 面向对象图书管理系统
android·开发语言·c#
小兔崽子去哪了9 分钟前
Java 登录专题
java·spring boot·后端
毕设源码-邱学长9 分钟前
【开题答辩全过程】以 高校跨校选课系统为例,包含答辩的问题和答案
java·eclipse
wuguan_10 分钟前
C#文件读取
开发语言·c#·数据读写