程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C# 3.0特性 - 迭代器(上)及一些研究過程中的副產品(3)

C# 3.0特性 - 迭代器(上)及一些研究過程中的副產品(3)

編輯:關於C語言

看看最後的測試,是不是不管具體的集合如何改變,遍歷代 碼都非常穩定?而且擴展新的集合類也非常方便,只是添加代碼不會修改原來的 代碼,符合開閉原則。當然,這麼好的解決方案微軟當然不會放過,現在C# 2.0 裡已經內置了對迭代器的支持,看看System.Collections, System.Collections.Generic命名空間,所有的集合都實現了這個接口: IEnumerable,這個接口還有泛型的版本。注意到這個接口只有一個方法: IEnumerator GetEnumerator();,IEnumerator就是迭代器的接口,相當於我的 實例裡面的Iterator,它也有泛型的版本。

那麼現在在.Net裡所有的集 合類都可以這樣訪問了:

IEnumerator IEnumerator = list.GetEnumerator();
while(IEnumerator.MoveNext())
{
object current = IEnumerator.Current;
}

但是這樣訪問也 太麻煩了,所以C#裡出現了foreach關鍵字,我們來看看foreach背後發生了什麼?假如有如下的代碼:

public static void Main()
{
ArrayList list = new ArrayList();
list.Add(1);
list.Add(2);
list.Add(3);
foreach (object item in list)
{
Console.WriteLine(item.ToString());
}
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved