程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> C#高級編程讀書筆記—foreach

C#高級編程讀書筆記—foreach

編輯:關於C#
 

C#中的foreache語句不會解析為IL代碼中的foreach語句。C#編譯器把foreach語句轉換為IEnumerable接口的方法和屬性。
下面是一個簡單的foreach語句,它迭代了數組persons中所有元素
foreach(person p in persons)
{
Console.Writeline(p);
}
foreach語句會解析為下面代碼段。首先,調用GetEnumerable()方法,獲得數組的一個枚舉。在while循環中,只要MoveNext()返回為true,用Current屬性訪問數組中的元素:
IEnumerator enumerator = persons.GetEnumerator();
while(enumerator.MoveNext())
{
Person P = (Person) enumerator.Current;
Console.WriteLine(p);
}

C#1.0使用了foreach語句可以輕松實現迭代集合,但創建枚舉器需要做大量工作,C#2.0添加了yield語句,以便創建枚舉器。
yield return 返回集合中的一個元素,並移動到下一個元素上。yield break 可停止迭代。
public class HelloCollection
{
public IEnumerator GetEnumerator()
{
yield return "Hello";
yield return "World";
}
}

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