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); 
}
相关推荐
z落落3 分钟前
C# Task WaitAll、WaitAny、WhenAll、WhenAny
开发语言·c#
兰令水4 分钟前
hot100【acm版】【2026.7.11/12打卡-java版本】
java·开发语言·数据结构·算法·职场和发展
研來如此12 分钟前
图像文件大小
人工智能·算法·计算机视觉
千纸鹤安安13 分钟前
开源 Agent 框架实战:用自然语言替代 Crontab 做运维
算法
从零开始的代码生活_14 分钟前
C++ string 详解:常用接口、字符串算法与深拷贝实现
开发语言·c++·后端·学习·算法
Keven_1120 分钟前
算法札记:差分约束系统为啥叫差分约束系统Σ(っ °Д °;)っ
算法·差分约束系统
Misnearch37 分钟前
nacos配置管理改造
java·spring cloud·nacos
XWalnut1 小时前
LeetCode刷题 day29
java·算法·leetcode
4154111 小时前
MyBatis-Plus + PostGIS 实战(1.1):Geometry 字段在 Swagger 中的优雅展示
java·mybatis·postgis
m0_738120721 小时前
PHP代码审计基础——面向对象(四)
android·开发语言·网络·安全·github·php