博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2011年6月14日

摘要: 迭代器(Iterators)在学习迭代器之前,需要先了解一下foreach的内部工作方式。要对一个对象使用foreach进行循环的话该对象必须有GetEnumerator方法,该方法是在IEnumerable接口下的。该方法会返回一个IEnumerator的实例,所以必须有一个迭代器累实现IEnumerator接口。该接口中的主要有一个Current属性和一个MoveNext()方法。 在foreach遍历的时候,会用到该迭代器类。这就是迭代器接口。假如某个类要使用foreach,就必须实现枚举模式,但是这个模式实现起来比较麻烦,因为它要维护一个内部状态机。所以C#2.0引入了迭代器的概念。C 阅读全文

posted @ 2011-06-14 18:07 ritazhou 阅读(190) 评论(0) 推荐(0) 编辑

摘要: IList<T> 和 IDictionary<TKey, TValue>IList<T> 和 IDictionary<TKey, TValue> 都继承了ICollection<T>泛型接口。IList 是 IDictionary的一种特例,IList的key总是一个整数,key set 总是从0开始的非负整数(non-negative integers)的连续集合。区别:IList用索引(Index)来取值, IDictionary用键值(key)来取值。所以虽然两个接口都实现索引器,但是实现索引器的方法是不同的。IComparab 阅读全文

posted @ 2011-06-14 13:53 ritazhou 阅读(277) 评论(0) 推荐(0) 编辑