关于foreach语句在C#4.5中的改进 本帖最后由 caozhy 于 2012-08-07 10:19:57 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 VS11 beta 9.5GB!坑爹吧! Closure is very useful in JavsScript, but for C#... I've never met any situation where I use it. 这样会养成不良的编程习惯从概念上理解(() => x);将编译成一个方法,而x的内存地址被固定了。foreach (var foo in actions)里面应该始终会被调用成一个返回值。在其他语言里面,都是这样的,所以不应该这么写。 js特有的吧?int型不是引用,理论上应该是12345才对,没试过,以后试试 这充分说明foreach是C#语法糖,和CLR完全无关。 问一下,从哪里知道foreach的实现是这个样子的啊 坑爹啊,上次用foreach死不行,果断改成for后好了。。估计是这个原因。。 为什么?原来的才是C#编译器的bug 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());}这样写,不需要临时变量也行。 求助,腾讯微博API oauth_signature 请高手帮我把这段vb代码转换成c#代码? 有一个问题,请问这样的功能怎么实现了 ◆GridView简单问题请教◆ 怎么保存 翻转了的图片 多线程 窗体无反应 C# 关于系统应用编程问题 初学c#网络编程,多个客户端连接一个服务端的问题 要把C#里的数据导入Excel中应该怎么作啊?没有一点的头绪啊? DataBingding问题(在线) C#类 C#自定义控件显示混乱问题
VS11 beta 9.5GB!坑爹吧!
foreach (var foo in actions)里面应该始终会被调用成一个返回值。在其他语言里面,都是这样的,所以不应该这么写。
var actions = data.Select(x1 => (Func<int>) (() => x1)).ToList();
foreach (var foo in actions)
{
Console.WriteLine(foo());
}这样写,不需要临时变量也行。