Respublikasi oliy va o’rta maxsus ta’lim vazirligi guliston davlat universiteti amaliy matematika va


Hodisalar boshqaruvchisi qo'shilmoqda


Download 1.4 Mb.
bet29/57
Sana26.06.2023
Hajmi1.4 Mb.
#1655865
1   ...   25   26   27   28   29   30   31   32   ...   57
Bog'liq
portal.guldu.uz-Дастурлаш технологиялари

Hodisalar boshqaruvchisi qo'shilmoqda


Hodisa u bilan bog'liq bo'lgan bir yoki bir nechta ishlov beruvchiga ega bo'lishi mumkin. Voqealar ishlovchilari - voqealar chaqirilganda aniq bajariladigan narsa. Usullar ko'pincha voqea ishlovchilari sifatida ishlatiladi. Har bir voqea ishlovchisi parametrlar ro'yxati va qaytish turi
bo'yicha hodisani ifodalaydigan delegatga mos kelishi kerak. Hodisa ishlovchilarini qo'shish uchun + = amalidan foydalaning:
Notify += обработчик события;

Dasturda kerakli bildirishnomalarni olish uchun bildirish hodisasi uchun ishlovchilarni aniqlaylik:


class Program


{
static void Main(string[] args)
{

Notify
}
Account acc = new Account(100);
acc.Notify += DisplayMessage; // Добавляем обработчик для события

acc.Put(20); // добавляем на счет 20 Console.WriteLine($"Сумма на счете: {acc.Sum}"); acc.Take(70); // пытаемся снять со счета 70 Console.WriteLine($"Сумма на счете: {acc.Sum}"); acc.Take(180); // пытаемся снять со счета 180 Console.WriteLine($"Сумма на счете: {acc.Sum}"); Console.Read();



private static void DisplayMessage(string message)
{
Console.WriteLine(message);
}
}
Bunday holda, ishlovchilar sifatida DisplayMessage usuli ishlatiladi, bu parametrlar ro'yxati va qaytish turidagi AccountHandler delegatiga mos keladi. Natijada, xabar berish. DisplayMessage- da biz shunchaki voqeadan olingan xabarni namoyish qilamiz, ammo har qanday mantiqni aniqlash mumkin edi.

Agar bu holda ishlov beruvchi o'rnatilmagan bo'lsa, unda Notify? .Invoke () hodisasi chaqirilganda hech narsa bo'lmaydi, chunki Notify hodisasi bekor bo'lgan bo'lar edi.


Dasturning konsol chiqishi:


Endi biz "Account" sinfini alohida sinf kutubxonasiga ajratib, har qanday loyihaga qo'shishimiz mumkin.



Download 1.4 Mb.

Do'stlaringiz bilan baham:
1   ...   25   26   27   28   29   30   31   32   ...   57




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling