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



Yüklə 233,68 Kb.
səhifə94/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

Console.Write(ch + " ");
Console.WriteLine();
}
}
Ushbu dastur bajarilganda quyidagi natijalar olinadi.
А В С D
Ko'rib turganingizdek, mc.chrs massivning ro`yxati keltirilgan.
Keling, ushbu dasturni batafsil ko'rib chiqaylik. Birinchidan, MyClass sinfida IEnumerator amalga oshiriladigan interfeys sifatida ko'rsatilmagan. Iterator yaratilganda, kompilyator ushbu interfeysni avtomatik ravishda amalga oshiradi. Ikkinchidan, qulaylik uchun quyida keltirilgan GetEnumerator() metodiga alohida e'tibor beraylik.
// Bu iterator chrs massivi belgilarni qaytaradi.
public IEnumerator GetEnumerator() {
foreach(char ch in chrs)
yield return ch;
}
Bu sinf MyClass ob'ektlari uchun iterator. Ko'rib turganingizdek, IEnumerable interfeysida aniqlangan GetEnumerator() metodini aniq amalga oshiradi. Endi bu metodning tanasiga to'g'ridan-to'g'ri ko`rib chiqamiz. Unda chrs massivi elementlari bo'lgan foreach operatoridan iborat. Bu "yield return" operatori yordamida amalga oshiriladi. Bu operator kolleksiyaning keyingi ob'ektni qaytadi, bu holda u chrs massivining yana bir belgisi bo'ladi. Ushbu vosita yordamida MyClass tipidagi mc ob'ektiga murojaat qilish Main() metodi doirasida foreach siklida tashkil etiladi.
yield nomi C# tilida kontekstli kalit so'z sifatida xizmat qiladi. Bu shuni anglatadiki, u faqat iterator blokida maxsus maqsadga ega. Undan blokdan tashqarida har qanday boshqa identifikatorga o'xshash tarzda foydalanish mumkin.
Shuni alohida ta'kidlash kerakki, iterator boshqa turdagi qator yoki to'plamga tayanmasligi kerak. U faqat elementlarning to'plamidan keyingi elementni qaytarishi kerak. Bu shuni anglatadiki, elementlar tegishli algoritm bilan dinamik ravishda qurilishi mumkin. Misol tariqasida, quyida yuqoridagi dasturning versiyasi keltirilgan bo'lib, unda ingliz alifbosidagi barcha harflar katta registrda yozilgan. Qator o'rniga harflar for siklida hosil qilinadi.

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