加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 关于IEnumerable的问题

发布时间:2020-12-15 19:36:35 所属栏目:百科 来源:网络整理
导读:我注意到IEnumerable(Generics)需要实现2个方法: 1. IEnumerator T的GetEnumerator() 2. IEnumerable.GetEnumerator()方法 (http://msdn.microsoft.com/en-us/library/19e6zeyy.aspx) 什么是#2以及我应该如何定义/实现它? 从我玩一些代码,似乎在foreach循
我注意到IEnumerable(Generics)需要实现2个方法:

1. IEnumerator< T>的GetEnumerator()

2. IEnumerable.GetEnumerator()方法

(http://msdn.microsoft.com/en-us/library/19e6zeyy.aspx)

什么是#2以及我应该如何定义/实现它?

从我玩一些代码,似乎在foreach循环中调用IEnumerator GetEnumerator().
#2 IEnumerable.GetEnumerator在哪里发挥作用?

我正在完成配方6.1在Oreilly的C#3.0 Cookbook中创建一个泛型类型的迭代器,我收到一个错误,因为#2没有实现(它没有包含在配方代码中).

谢谢!

解决方法

第一个是通用的GetEnumerator,而第二个是非泛型的.它们在功能上做同样的工作,但非泛型只能返回一个对象类型.

实现这些的最简单方法是实现通用版本,然后为非泛型提供:

IEnumerator IEnumerable.GetEnumerator() {
   return GetEnumerator();
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读