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.
|
portal.guldu.uz-Дастурлаш технологиялари
Ishlovchilarni qo'shish va olib tashlashBitta 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(); } Download 1.4 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling