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
3. Bir nechta yield operatorlarini qo'llash.
Iteratorda bir nechta yieldoperatorlaridan foydalanishga ruxsat beriladi. Ammo har bir bunday operator to'plamning keyingi elementni qaytarishi kerak. Misol sifatida, quyidagi dasturni ko'rib chiqaylik. // Bir nechta yield operatorlarini qo'llash misoli. using System; using System.Collections; class MyClass { // Ushbu iterator A, B, C, D va E harflarini qaytaradi. public IEnumerator GetEnumerator() { yield return 'A'; yield return 'В'; yield return 'C' ; yield return 'D'; yield return 'Е'; } } class ItrDemo5 { static void Main() { MyClass mc = new MyClass (); foreach(char ch in mc) Console.Write(ch + " "); Console.WriteLine(); } } Quyida ushbu dasturni amalga oshirish natijalari keltirilgan. АВСD Е Ushbu dasturda, GetEnumerator()metodda yield ning besh operatorlari amalga oshiriladi. Shuni alohida ta'kidlash kerakki, ular o'z navbatida amalga oshiriladi va har safar to'plamdan keyingi elementni olinadi. Shunday qilib, foreachsiklining har bir bosqichida Main()metodi faqat bitta belgi qaytadi. Nazorat savollari