-1
下面的代碼是從以下網頁採取:http://msdn.microsoft.com/en-us/magazine/cc188707.aspxVB.NET - 鑄造類型
int[] values = new int[] {1, 2, 3, 4, 5};
IEnumerator e = ((IEnumerable)values).GetEnumerator();
while(e.MoveNext())
{
Console.Write(e.Current.ToString() + " ");
}
爲什麼Array類鑄造成一個IEnumerable? Array類實現GetEnumerator,如以下網頁所示:http://msdn.microsoft.com/en-us/library/system.array.aspx。
對不起,我已經重新標記問題。我在VB.NET中提出這個問題,但我提供了一個C#示例,因爲這正是我所看到的網頁上的內容。 – w0051977
我知道使用IEnumerator實現了FOR EACH循環。 FOR循環如何實現? – w0051977
@ w0051977:當你循環一個數組時,'for'和'foreach'都是用比現在編譯代碼更優化的代碼實現的。 'foreach'不使用枚舉器來循環數組,編譯器創建的代碼執行相同的事情,但沒有枚舉器的開銷。在循環數組時,編譯器會認識到索引永遠不會超出數組,因此訪問'values [i]'時不需要對索引進行正常範圍檢查。 – Guffa