网摘 |  收藏 | 
摘要: 转自 http://mindhacks.cn/friend-links/{技术}TopLanguage | PythonCN | ErlangCNCoding Horror | High Scalability | InfoQReddit | Stack Overflow | Steve Yegge淘宝UED团队 | 淘宝数据仓库团队 | 银杏站内搜索代码发芽网 | 玩聚网 | 移山之道 | OpenParty@Beijing{科普}Gigapedia | Scientific American | Scientific American Mind科学松鼠会 | 科幻世界 | 幸福课 | 译言 阅读全文
posted @ 2012-11-21 17:51 xulonghua219 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 转自http://blog.163.com/ketai_lin/blog/static/235906782007384917627/初步研究,抛砖引玉。Iterator是Visual C# 2005的新功能,Iterator可以让您支持类或结构中的Foreach循环反复运算,而不需要实现整个IEnumerable接口,只要指定好Iterator就可以。当编译器侦测到您的Iterator时,它会自动产生IEnumerable接口的Current MoveNext 和Dispose方法。Iterator特别适合与集合类搭配使用,因为能够提供逐一查看像是二元树等复杂数据结构的方法。Yield关键字可 阅读全文
posted @ 2012-11-21 17:39 xulonghua219 阅读(3365) 评论(0) 推荐(0) 编辑
摘要: 在迭代器块中用于向枚举数对象提供值或发出迭代结束信号。它的形式为下列之一:yield return <expression>;yield break;备注计算表达式并以枚举数对象值的形式返回;expression 必须可以隐式转换为迭代器的 yield 类型。yield 语句只能出现在 iterator 块中,该块可用作方法、运算符或访问器的体。这类方法、运算符或访问器的体受以下约束的控制:不允许不安全块。方法、运算符或访问器的参数不能是ref或out。yield 语句不能出现在匿名方法中。有关更多信息,请参见 匿名方法(C# 编程指南)。当和 expression 一起使用时,y 阅读全文
posted @ 2012-11-21 17:37 xulonghua219 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 转自:http://www.cnblogs.com/artech/archive/2010/10/28/yield.htmlC#的yield关键字由来以久,如果我没有记错的话,应该是在C# 2.0中被引入的。相信大家此关键字的用法已经了然于胸,很多人也了解yield背后的“延迟赋值”机制。但是即使你知道这个机制,你也很容易在不经意间掉入它制造的陷阱。目录 一、一个很简单的例子 二、简单谈谈“延迟赋值” 三、从反射的代码帮助我们更加直接的了解yield导致的延迟赋值 四、如果需要“立即赋值”怎么办? 后记 一、一个很简单的例子下面是一个很简单的例子:Vector为自定义表示二维向量的类型,Pro 阅读全文
posted @ 2012-11-21 17:14 xulonghua219 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 转自http://www.cnblogs.com/hsapphire/archive/2010/04/16/1713211.html在平常的代码编写中,虽然不常用到Ienumerable 但却不可不知他的意义,有些时候使用会起到意想不到的作用,我们从中可以知道 foreach 在IL中,是以Ienumberable 来体现的。IEnumerable和IEnumerable 主要实现 public IEnumerator GetEnumerator() C# 1.0中的foreach没有迭代器的时候,创建一个可用于foreach的集合(C# 1.0):public class MyCollect 阅读全文
posted @ 2012-11-21 14:59 xulonghua219 阅读(143) 评论(0) 推荐(0) 编辑
摘要: http://lzhp924.blog.51cto.com/1877817/354604咋一看到IEnumerable这个接口,我们可能会觉得很神奇,在一般的编程时,基本上我们是想不到去用它的,可是,俗话说得好,存在便是道理,那么,它对我们来说,能够带来哪些奇妙的事情呢?要想弄懂它,我们还是看看其定义吧!在MSDN上,是这么说的,它是一个公开枚举数,该枚举数支持在非泛型集合上进行简单的迭代。换句话说,对于所有数组的遍历,都来自IEnumerable,那么我们就可以利用这个特性,来定义一个能够遍历数组的通用方法,这样看来,是不是很神奇呢?例如: public static void... 阅读全文
posted @ 2012-11-21 14:21 xulonghua219 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 转自http://www.cnblogs.com/kingmoon/archive/2011/05/03/2035696.htmlLambda表达式"Lambda表达式"是一个匿名函数,是一种高效的类似于函数式编程的表达式,Lambda简化了开发中需要编写的代码量。它可以包含表达式和语句,并且可用于创建委托或表达式目录树类型,支持带有可绑定到委托或表达式树的输入参数的内联表达式。所有Lambda表达式都使用Lambda运算符=>,该运算符读作"goes to"。Lambda运算符的左边是输入参数(如果有),右边是表达式或语句块。Lambda表达式x 阅读全文
posted @ 2012-11-21 13:08 xulonghua219 阅读(184) 评论(0) 推荐(0) 编辑