我注意到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,而第二个是非泛型的.它们在功能上做同样的工作,但非泛型只能返回一个object类型.
实现这些的最简单方法是实现通用版本,然后为非泛型提供:
IEnumerator IEnumerable.GetEnumerator() {
return GetEnumerator();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
215 次 |
| 最近记录: |