技术栈

c# 循环内使用匿名函数关联变量的问题

wangyue42024-03-20 17:40
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); 
}
上一篇:GUROBI实战案例(三)——交通运输(网络流模型)
下一篇:从零开始学习在VUE3中使用canvas(一):实现一个基础的canvas画布
相关推荐
Tisfy
2 分钟前
LeetCode 1927.求和游戏:抵消+看最值
java·leetcode·游戏·题解·博弈论
玖玥拾
4 分钟前
LeetCode 125 验证回文串
算法·leetcode
「QT(C++)开发工程师」
5 小时前
C++ 11 常用for循环
开发语言·c++
我还记得那天
6 小时前
0 初识C++
开发语言·c++
FfHUCisI
6 小时前
Go 编译过程全景
开发语言·后端·golang
FfHUCisI
6 小时前
Golang 语法分析与 AST:Parser 与 go/ast
开发语言·后端·golang
秋饼
6 小时前
JDK 27 企业级 AI 服务落地实战:G1 默认、紧凑对象头、后量子 TLS 与 JFR 脱敏全解析
java·ai·技术分享·后端开发
Asize
7 小时前
146. LRU 缓存
算法
Asize
7 小时前
543. 二叉树的直径
算法
热门推荐
01国内可直接用、免费额度/永久免费的大模型API清单(含 SiliconFlow、火山、阿里、智谱、百度、Kimi、DeepSeek、DMXAPI 等)02GitHub 镜像站点032026 国产 AI 大模型横评:DeepSeek、通义千问、Kimi、文心一言、星火、豆包谁更能打?04历年考研数学一、数学二、数学三真题试卷及答案PDF05微信历史版本含下载地址( Windows PC | 安卓 | MAC )及设置微信不更新06Agnes AI 免费 API 接入指南:文本、生图、生视频,一套接口全免费07AI 编程 IDE 全景解析 2026:Agent 全面接管开发链路08VSCode+CodeX扩展,无法启动09如何新建文件夹? 电脑新建文件夹的4种方法102026年7月AI圈大地震:GPT-5.6被政府限制、Claude入驻Slack、Anthropic自研芯片