您的位置:首页 > 其它

防止Lambda的各种坑爹(二)

2012-12-04 01:58 155 查看
  2.循环内的被捕获的变量。

  首先看一段代码:

View Code

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Lambda2
{
class Program
{
static void Main(string[] args)
{

List<Action> list = new List<Action>();
for (int i = 0; i < 3; i++)
{
list.Add(() =>
{
Console.Write(i);
i++;
});
}

foreach (var item in list)
{
item();
}
list.First()();
list.First()();

Console.Read();
}
}
}


  同时看到对应的IL代码,new DisplayClass1的位置在循环外部



  好了,这个提醒我们以后在循环内部使用Lambda表达式的时候需要注意的地方。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: