2008年5月21日 星期三

C# 使Function傳回多

C# 2.0

List<T>
可以依照索引存取的強型別物件清單。提供搜尋、排序和管理清單的方法。


Iterator
Iterator 是 C# 2.0 中的新功能。Iterator 是一種方法、get 存取子或運算子,它可讓您支援類別或結構中的 foreach 反覆運算,而不需要實行整個 IEnumerable 介面。相反地,您只要提供 Iterator,它會只往返於類別中的資料結構。當編譯器偵測到您的 Iterator 時,它會自動產生 IEnumerable 或 IEnumerable 介面的 Current、MoveNext 和 Dispose 方法。

Iterator 概觀
Iterator 是程式碼區段,會傳回相同型別之按順序排列的值。

Iterator 可以當做方法主體、運算子或 get 存取子使用。

Iterator 程式碼會使用 yield return 陳述式輪流傳回各元素。yield break 則會結束反覆運算。如需詳細資訊,請參閱 yield。

可在類別上實作多個 Iterator。每個 Iterator 必須像任何類別成員一樣擁有唯一名稱,且可以由 foreach 陳述式中的用戶端程式碼叫用,如下所示:foreach(int x in SampleClass.Iterator2){}。

Iterator 的傳回型別必須是 IEnumerable、IEnumerator、IEnumerable 或 IEnumerator。

yield 關鍵字可用來指定傳回的值。當到達 yield return 陳述式時,便會儲存目前的位置。此 Iterator 下一次被呼叫時,就會從這個位置重新執行。

Iterator 特別適合與集合類別搭配使用,因為能夠提供逐一查看像是二元樹等複雜資料結構的方法。

沒有留言: