日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯網營銷解決方案
C#編程:使用迭代器

創(chuàng)建迭代器最常用的方法是對 IEnumerable 接口實現 GetEnumerator 方法,例如:

10年積累的成都做網站、成都網站建設經驗,可以快速應對客戶對網站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網絡服務。我雖然不認識你,你也不認識我。但先網站設計后付款的網站建設流程,更有黃陂免費網站建設讓你可以放心的選擇與我們合作。

 
 
 
  1. public System.Collections.IEnumerator GetEnumerator()  
  2. {  
  3.     for (int i = 0; i <  max; i++)  
  4.     {  
  5.         yield return i;  
  6.     }  

GetEnumerator 方法的存在使得類型成為可枚舉的類型,并允許使用 foreach 語句。如果上面的方法是 ListClass 的類定義的一部分,則可以對該類使用 foreach,如下所示:

 
 
 
  1. static void Main()  
  2. {  
  3.     ListClass listClass1 = new ListClass();  
  4.  
  5.     foreach (int i in listClass1)  
  6.     {  
  7.         System.Console.WriteLine(i);  
  8.     }  

foreach 語句調用 ListClass.GetEnumerator() 并使用返回的枚舉數來循環(huán)訪問值。有關如何創(chuàng)建返回 IEnumerator 接口的泛型迭代器的示例,請參見 如何:為泛型列表創(chuàng)建迭代器塊(C# 編程指南)。

還可以使用命名的迭代器以支持通過不同的方式循環(huán)訪問同一數據集合。例如,您可以提供一個按升序返回元素的迭代器,而提供按降序返回元素的另一個迭代器。迭代器還可以帶有參數,以便允許客戶端控制全部或部分迭代行為。下面的迭代器使用命名的迭代器 SampleIterator 實現 IEnumerable 接口:

 
 
 
  1. // Implementing the enumerable pattern  
  2. public System.Collections.IEnumerable SampleIterator(int start, int end)  
  3. {  
  4.     for (int i = start; i < = end; i++)  
  5.     {  
  6.         yield return i;  
  7.     }  

命名的迭代器的調用方法如下:

 
 
 
  1. ListClass test = new ListClass();  
  2. foreach (int n in test.SampleIterator(1, 10))  
  3. {  
  4.     System.Console.WriteLine(n);  

可以在同一個迭代器中使用多個 yield 語句,如下面的示例所示:

 
 
 
  1. public System.Collections.IEnumerator GetEnumerator()  
  2. {  
  3.     yield return "With an iterator, ";  
  4.     yield return "more than one ";  
  5.     yield return "value can be returned";  
  6.     yield return ".";  

然后可以使用下面的 foreach 語句輸出結果:

 
 
 
  1. foreach (string element in new TestClass())  
  2. {  
  3.     System.Console.Write(element);  

此示例顯示以下文本:

 
 
 
  1. With an iterator, more than one value can be returned.  

在 foreach 循環(huán)的每次后續(xù)迭代(或對 IEnumerator.MoveNext 的直接調用)中,下一個迭代器代碼體將從前一個 yield 語句之后開始,并繼續(xù)下一個語句直至到達迭代器體的結尾或遇到 yield break 語句。

【編輯推薦】

  1. C# winForm自定義鼠標樣式的兩種方法
  2. C#自定義消息框的設置圖解
  3. 掌握C#自定義泛型類:從初始化說起
  4. C#存儲過程的循序漸進
  5. 存儲過程的優(yōu)勢及其調用方法介紹

文章名稱:C#編程:使用迭代器
本文路徑:http://www.5511xx.com/article/dpehdoi.html