1-Mavzu 1-Mavzu Reja: Klass a’zolariga ruxsatni boshqarish


// Iterator yordamida o'z navbatida qaytarilgan qiymatlarning



Yüklə 233,68 Kb.
səhifə95/96
tarix27.07.2023
ölçüsü233,68 Kb.
#137688
1   ...   88   89   90   91   92   93   94   95   96
1-Mavzu 1-Mavzu Reja Klass a’zolariga ruxsatni boshqarish-fayllar.org

// Iterator yordamida o'z navbatida qaytarilgan qiymatlarning
//dinamik qurilishiga misol.
using System;
using System.Collections;
class MyClass {
char ch = 'A';
// Ushbu iterator katta harflar bilan yozilgan
//ingliz alifbosidagi harflarni qaytaradi.
public IEnumerator GetEnumerator() {
for(int i=0; i < 26; i++)
yield return (char) (ch + i);
}
}
class ItrDemo2 {
static void Main() {
MyClass mc = new MyClassO;
foreach(char ch in mc)
Console.Write(ch + " ") ;
Console.WriteLine();
}
}
Bu dasturning natijasi quyidagicha.
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

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

Yüklə 233,68 Kb.

Dostları ilə paylaş:
1   ...   88   89   90   91   92   93   94   95   96




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin