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); 
}
相关推荐
百锦再2 分钟前
第21章 构建命令行工具
android·java·图像处理·python·计算机视觉·rust·django
极光代码工作室8 分钟前
基于SpringBoot的校园招聘信息管理系统的设计与实现
java·前端·spring
努力学算法的蒟蒻8 分钟前
day17(11.18)——leetcode面试经典150
算法·leetcode·面试
缘友一世13 分钟前
模型微调DPO算法原理深入学习和理解
算法·模型微调·dpo
道一2314 分钟前
C# 读取文件方法介绍
开发语言·c#
蒋星熠14 分钟前
常见反爬策略与破解反爬方法:爬虫工程师的攻防实战指南
开发语言·人工智能·爬虫·python·网络安全·网络爬虫
是店小二呀16 分钟前
在家搭个私人影院?LibreTV+cpolar,随时随地看片自由
开发语言·人工智能
未若君雅裁18 分钟前
斐波那契数列 - 动态规划实现 详解笔记
java·数据结构·笔记·算法·动态规划·代理模式
断剑zou天涯19 分钟前
【算法笔记】从暴力递归到动态规划(三)
java·算法·动态规划