熱衷於 C# 語言的人會喜歡上 Visual C# 2005。Visual Studio 2005 為 Visual C# 2005 帶來了大量令人興奮的新功能,例如泛型、迭代程序、局部類和 匿名方法等。雖然泛型是人們最常談到的也是預期的功能,尤其是在熟悉模板的 C++ 開發人員中間,但是其他的新功能同樣是對Microsoft .Net開發寶庫的重要 補充。與 C# 的第一個版本相比,增加這些功能和語言將會提高您的整體生產效 率,從而使您能夠以更快的速度寫出更加簡潔的代碼。有關泛型的一些背景知識 ,您應該看一看提要欄“什麼是泛型?”。
迭代程序
在 C# 1.1 中,您可以使用 foreach 循環來遍歷諸如數組、集合這樣的數據結構:
string[] citIEs = {"New York","Paris","London"};
foreach(string city in citIEs)
{
Console.WriteLine(city);
}
實際上,您可以在 foreach 循環中使用任何自定義數據集合,只要該 集合類型實現了返回 IEnumerator 接口的 GetEnumerator 方法即可。通常,您 需要通過實現 IEnumerable 接口來完成這些工作:
public interface IEnumerable
{
IEnumerator GetEnumerator();
}
public interface IEnumerator
{
object Current {get;}
bool MoveNext();
void Reset();
}
在通常情況下,用於通過實現 IEnumerable 來遍歷集合的類是作為要遍歷的集合 類型的嵌套類提供的。此迭代程序類型維持了迭代的狀態。將嵌套類作為枚舉器 往往較好,因為它可以訪問其包含類的所有私有成員。當然,這是迭代程序設計 模式,它對迭代客戶端隱藏了底層數據結構的實際實現細節,使得能夠在多種數 據結構上使用相同的客戶端迭代邏輯,如圖 1 所示。
圖 1 迭代程序設計模式