栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

谁能向我解释IEnumerable和IEnumerator?[关闭]

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

谁能向我解释IEnumerable和IEnumerator?[关闭]

例如,何时在foreach上使用它?

您不使用

IEnumerable
“ over”
foreach
。实现
IEnumerable
使使用成为
foreach
可能

当您编写如下代码时:

foreach (Foo bar in baz){   ...}

它在功能上等同于编写:

IEnumerator bat = baz.GetEnumerator();while (bat.MoveNext()){   bar = (Foo)bat.Current   ...}

我所说的“功能等效”实际上是编译器将代码转换成的功能。不能使用

foreach
baz
在这个例子中 ,除非
baz
器具
IEnumerable

IEnumerable
表示
baz
实现该方法

IEnumerator GetEnumerator()

IEnumerator
此方法返回的对象必须实现这些方法

bool MoveNext()

Object Current()

第一种方法前进到

IEnumerable
创建枚举器的对象中的下一个对象,
false
如果完成,则返回,第二种方法返回当前对象。

.Net中可以迭代实现的任何内容

IEnumerable
。如果您要构建自己的类,并且该类尚未从实现的类继承
IEnumerable
,则可以
foreach
通过实现
IEnumerable
(并创建其新
GetEnumerator
方法将返回的枚举器类)使该类在语句中可用。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/452055.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号