【发布时间】:2010-12-10 16:38:22
【问题描述】:
当我实现IList<T> 时,我发现我需要定义两个 GetEnumerator 方法。一个返回IEnumerator 类型的值,而另一个返回IEnumerator<T>。
我对这两种GetEnumerator 方法之间的区别有点困惑。虽然返回类型明显不同,但它们本质上不是保存相同的数据吗?
此外,为什么GetEnumerator 的两个版本都可以作为方法存在,而它们仅在返回类型上有所不同?这似乎违反了 C# 中的规则,该规则指定重载方法不能仅在返回类型上有所不同。
【问题讨论】: