闭包

List<Action> lst = new List<Action>();
for(int i=0; i<5; i++)
{
    // wrong, output:55555
    Action act = ()=>Console.WriteLine(i);
    
    // correct, output:01234
    /*
    int temp = i;
    Action act = ()=>Console.WriteLine(temp);
    */

    lst.Add(act);
}
foreach(var fun in lst)
{
    fun();
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容