本帖最后由 caozhy 于 2012-08-07 10:19:57 编辑

解决方案 »

  1.   


    VS11 beta  9.5GB!坑爹吧!
      

  2.   

    Closure is very useful in JavsScript, but for C#... I've never met any situation where I use it.
      

  3.   

    这样会养成不良的编程习惯从概念上理解(() => x);将编译成一个方法,而x的内存地址被固定了。
    foreach (var foo in actions)里面应该始终会被调用成一个返回值。在其他语言里面,都是这样的,所以不应该这么写。
      

  4.   

    js特有的吧?int型不是引用,理论上应该是12345才对,没试过,以后试试
      

  5.   

    这充分说明foreach是C#语法糖,和CLR完全无关。
      

  6.   

    问一下,从哪里知道foreach的实现是这个样子的啊
      

  7.   

    坑爹啊,上次用foreach死不行,果断改成for后好了。。估计是这个原因。。
      

  8.   

    为什么?原来的才是C#编译器的bug
      

  9.   

    var data = new int[] { 1, 2, 3, 4, 5 };
    var actions = data.Select(x1 => (Func<int>) (() => x1)).ToList();
    foreach (var foo in actions)
    {
        Console.WriteLine(foo());
    }这样写,不需要临时变量也行。