2. Iteratorning uzilishi.
Iteratorning erta uzilishi uchun yield operatorining quyidagi shakli xizmat qiladi.
yield break;
Ushbu operator amalga oshirilganda, iterator to'plamning oxiriga yetganligini bildiradi. Aslida, iteratorning o'zi to'xtaydi.
Quyidagi dastur ingliz alifbosining dastlabki o'nta harfini ko'rsatish uchun o'zgartirilgan avvalgi dasturning versiyasidir.
// Iteratorning uzilishi misoli.
using System;
using System.Collections;
class MyClass {
char ch = 'A';
// Ushbu iterator ingliz alifbosining birinchi 10 harflarini qaytaradi.
public IEnumerator GetEnumerator() {
for(int i=0; i < 26; i++) {
if(i == 10) yield break; // iteratorni muddatidan oldin to'xtatish
yield return (char) (ch + i) ;
}
}
}
class ItrDemo3 {
static void Main() {
MyClass mc = new MyClassO;
foreach(char ch in mc)
Console.Write(ch + " ");
Console.WriteLine();
}
}
Ushbu dastur quyidagi natijani beradi.
A B C D E F G H I J
Do'stlaringiz bilan baham: |