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


Ishlovchilarni qo'shish va olib tashlash


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

Ishlovchilarni qo'shish va olib tashlash


Bitta voqea uchun siz bir nechta ishlov beruvchilarni o'rnatishingiz va keyin ularni istalgan vaqtda olib tashlashingiz mumkin. Ishlovchilarni olib tashlash uchun - = amalidan foydalaning. Masalan; misol uchun:
class Program
{
static void Main(string[] args)
{
Account acc = new Account(100);
acc.Notify += DisplayMessage; // добавляем обработчик DisplayMessage
acc.Notify += DisplayRedMessage; // добавляем обработчик DisplayMessage
acc.Put(20); // добавляем на счет 20
acc.Notify -= DisplayRedMessage; // удаляем обработчик DisplayRedMessage
acc.Put(20); // добавляем на счет 20 Console.Read();
}

private static void DisplayMessage(string message)


{
Console.WriteLine(message);
}

private static void DisplayRedMessage(String message)


{
// Устанавливаем красный цвет символов Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(message);
// Сбрасываем настройки цвета Console.ResetColor();
}
}
Konsol chiqishi:

Qabul qilingan hisob: 20 Hisobga olingan: 20 Qabul qilingan hisob: 20


Ishlovchilar sifatida nafaqat oddiy usullardan, balki delegatlardan, noma'lum usullardan va lambda iboralaridan ham foydalanish mumkin. Delegatlar va usullardan foydalanish:


static void Main(string[] args)


{
Account acc = new Account(100);
// установка делегата, который указывает на метод DisplayMessage acc.Notify += new ActionHandler(DisplayMessage);
// установка в качестве обработчика метода DisplayMessage
acc.Notify += DisplayMessage; // добавляем обработчик DisplayMessage

acc.Put(20); // добавляем на счет 20 Console.Read();


}

private static void DisplayMessage(string message)


{
Console.WriteLine(message);
}

Bunday holda, ikkita ishlovchilar o'rtasida farq bo'lmaydi. Anonim usulni ishlov beruvchi sifatida o'rnatish:


static void Main(string[] args)
{
Account acc = new Account(100); acc.Notify += delegate (string mes)
{
Console.WriteLine(mes);
};

acc.Put(20);


Console.Read();
}

Lambda ifodasi uchun ishlov beruvchi sifatida sozlash:


static void Main(string[] args)


{
Account acc = new Account(100);
acc.Notify += mes =>Console.WriteLine(mes);

acc.Put(20);


Console.Read();
}






  1. Hodisalar nima.

  2. Hodisalar qanday aniqlanadi.

  3. Hoqisalarni boshqarish

Download 1.4 Mb.

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




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