IEnumerableとIEnumeratorの理解

2363 ワード

我々は符号化においてforeachループ集合をよく用い,ループ可能な集合は必ずIEnumeratorインタフェースを実現し,IEnumeratorインタフェースは以下のようになる.
 1 public interface IEnumerator  2 {  3       //    4       // 。  true; , false。
 5       bool MoveNext();  6      //
 7       void Reset();  8 
 9       //
10       object Current { get; } 11 }

foreachを使用してコレクションを巡回するには、コレクションがIEnumeratorインタフェースを継承し、IEnumeratorインタフェースのメソッドを実装する必要があります.
 
一方、IEnumerableインタフェースは、次のようなIEnumeratorタイプのインスタンスを返します.
1 public interface IEnumerable 2 { 3       //IEnumerable , 。
4  IEnumerator GetEnumerator() ; 5 }

どうしてこのように設計するのですか?IEnumerableは何をしているのか、IEnumeratorはどのようにしているのか、ソフトウェアエンジニアリングのインタフェース隔離の原則に合っています.