栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > 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号