IEnumerator IEnumerable.GetEnumerator()
    
{
       return (IEnumerator) GetEnumerator();
    
}请问这是个方法么?那为什么没有public等修饰符呢?其中的IEnumerator仅仅表示类型么?
IEnumerator和IEnumerable 是什么关系呢?

解决方案 »

  1.   

    IEnumerable是非泛型的可迭代接口,IEnumerator是非泛型的迭代器接口。两者的联系,可以简单地理解为:
    IEnumerable是所有迭代操作的基础,它负责返回一个迭代器IEnumerator,而不负责返回具体对象。
    IEnumerator则是负责实现迭代并返回具体对象的接口。
      

  2.   

    IEnumerable.GetEnumerator()
    因为它使用显式申明实现IEnumerable接口,所以不需要也不能加上作用域修饰。
    IEnumerator,返回的接口类型。