问题描述
IEnumerable和IEnumerator的区别,还有怎么用?请大师赐教??????
解决方案
解决方案二:
这次手动帮你移到C#,下次一律移到其他语言
解决方案三:
IEnumerable和IEnumerator的区别IEnumerable提供了一个接口方法,就是GetEnumerator()函数,主要是返回IEnumerator对象的!IEnumerator提供了current,movenext等遍历方法,这样foreach这样的语句,才可以支持的!我的理解,微软为什么这么设计,主要的目的是提供了方法和执行对象的分离!因为IEnumerator这个对象,是可以有很多继承对象的,如果直接反馈IEnumerator对象,这样就缺少了灵活的控制!所谓微软设计了两个接口实现该功能!至于怎么用的话,其实也比较简单了,就是如果你的对象,希望使用foreach语句,那么就继承IEnumerable,如果遍历比较特殊的化,就要继承IEnumerator才行!
解决方案四:
解决方案五:
它们之间的关系,就好象汽车和驾驶员,规定每一辆汽车必须有一位“有证驾驶员”才能上路。IEnumerable是“可枚举的对象(类)”的接口,而这类对象内部必须有一个IEnumerator类型的函数负责提供.net系统查验和调用。
解决方案六:
Enumerable枚举,IEnumerable可访问指定的成员。被访问的成员是必须需存在的Enumerator枚举器,IEnumerator可用foreach遍历所有成员。因此你不必保证成员一定存在
解决方案七:
引用楼主Brave_Duan的回复:
IEnumerable和IEnumerator的区别,还有怎么用?请大师赐教??????
讲解的很详细↑
解决方案八:
IEnumrable定义得比较粗糙、简单,甚至根本不需要它(),这是有历史原因的。不必在这里太计较其形式上是不是“取名不易记忆、概念不够明确”等等,你就把他们的完全不相同的功能分别走通就行了。
解决方案九:
foreachwhile(xxx.MoveNext())这两个的区别