for……in是一个内部实现的
遍历。我们通常的for遍历都需要通过索引,比如:for (int i=0;i<=某个长度;++i) {
//myObj[i]
}这样的遍历非常容易出错(造成下标错误)。为了避免这个问题,我们特地引入了for……in……“安全”遍历,其原理是内部实现了Enumerable和Enumerator接口,内部生成一个指针进行遍历。我来模拟其内部结构: class MyEnumerator:Enumerable,Enumerator{ private 索引 = 0; //假设0是下标 public 集合中个体
数据类型 Current { return 集合[指针索引] } public bool MoveNext() { return 索引<集合总量; } public void Move() { 索引++; } public Enumerable GetEnumerator { return this; }} 实际上相当于:for(Enumerable e = 集合类;e.MoveNext();e.Move()){ …………}