若要使用 foreach 陳述式逐一查看集合,則集合必須符合下列需求︰
- 它必須是介面、類別或結構。
- 它必須包括可傳回型別的公用 GetEnumerator 方法。
- 傳回型別包含名為 Current 的公用屬性和名為 MoveNext 的公用方法。
其他詳細資訊,請參閱 HOW TO:使用 foreach 存取集合類別 (C# 程式設計手冊)。
要自訂一個集合類別,除了直接實作 IEnumerable、IEnumerator 介面外, 另外,只要該類別具有必要的 GetEnumerator、MoveNext、Reset 和 Current 成員,就可以搭配 foreach 使用。
public interface IEnumerable { IEnumerator GetEnumerator();//傳回會逐一查看集合的列舉程式。 } public interface IEnumerator { // 方法 bool MoveNext();//將列舉值往前推至下集合中的下一個項目。如果成功則返回為 true;如果超過集合結尾,則返回false。 void Reset();//設定列舉值至它的初始位置,這是在集合中第一個元素之前。 // 屬性 object Current { get; }//取得集合中目前的項目。 }
沒有留言:
張貼留言