1 ienumerable 提供可列舉的能力,只有實現該介面才可以使用foreach物件迭代物件
其介面包含的方法
ienumerator getenumerator()
該介面中包含實現迭代提供的值序列或者自定義值序列,然後對其進行迭代
public class test
}public class testienumerable
}
該方法體中也可以使用yield建立乙個迭代器然後返回
public class testienumerable:ienumerable
}
直接返回乙個自定義的迭代器類
public class testienumerable:ienumerable
}public testienumerator:ienumerator
......
}
2 ienumerator 提供可以迭代的值序列,供列舉器使用
包含普通介面ienumerator和泛型介面ienumerator
其介面方法包含
bool movenext() //這裡的movenext可以自定義返回滿足的條件true
object current
void reset()
比較經典的用法
public class helloienumerator : ienumerator, ienumerator
object ienumerator.current
}string ienumerator.current
}public void dispose()
public bool movenext()
return false;
}public void reset()
}
public class gamemove
public ienumerator cross()
}public ienumerator circle()
}}
C 列舉器和迭代器
using system using system.collections namespace study public class people ienumerable 宣告可列舉類 ienumerator ienumerable.getenumerator 實現ienumerable的geten...
C 迭代器,列舉器
測試 using system using system.collections.generic using system.linq using system.text using system.collections namespace 07迭代器 private int move 0 const...
C 學習之用迭代器實現列舉器
已經知道 主要乙個類實現了getenumerator函式就能foreach,而實現ienumerator介面只是實現 getenumerator函式的其中乙個辦法,也就說還有其他辦法實現getenumerator函式了?是的,c 2.0為我們提供了一種很簡單的方 法來實現getenumerator函...