Visual J#、C++、VB.NET 皆將支援泛型建立與使用,CLR 執行階段提供跨語言泛型基礎。
傳統 foreach 需實作 IEnumerable/GetEnumerator、IEnumerator/MoveNext/Current 並維護狀態機,複雜資料結構(如二元樹)極難實作。
public class List
{
internal object[] elements;
internal int count;
public object foreach() { } // 迭代器宣告
public string foreach()
{
yield "microsoft";
yield "corporation";
yield "developer division";
}
}
呼叫端:
foreach (string s in list) Console.WriteLine(s); // 執行三次