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); 
}
相关推荐
yugi98783812 小时前
基于字典缩放的属性散射中心参数提取MATLAB仿真程序
开发语言·matlab
罗湖老棍子12 小时前
强迫症冒险家的任务清单:字典序最小拓扑排序
数据结构·算法·图论·拓扑排序
不穿格子的程序员13 小时前
从零开始写算法——回溯篇4:分割回文串 + N皇后
算法·深度优先·dfs
小白学大数据13 小时前
绕过拼多多 App 反抓包机制的综合逆向解决方案
开发语言·爬虫·python·自动化
使者大牙13 小时前
【单点知识】 Python装饰器介绍
开发语言·数据库·python
带土113 小时前
2. C++ private、protected、public
开发语言·c++
ScilogyHunter13 小时前
qBI有什么用
算法·qbi
Jackson@ML13 小时前
2026最新版Sublime Text 4安装使用指南
java·python·编辑器·sublime text
我不是8神13 小时前
字节跳动 Eino 框架(Golang+AI)知识点全面总结
开发语言·人工智能·golang
毕设源码-朱学姐13 小时前
【开题答辩全过程】以 校园闲置物品交易平台的设计与实现为例,包含答辩的问题和答案
java·eclipse