Interfeys toifalari tushunchasi Interfeys toifalarni abstract bazaviy sinflar bilan taqqoslash Maxsus interfeyslarni kiritish


Kirib kelayotgan hodisalarni eshitish


Download 0.77 Mb.
bet36/50
Sana26.01.2023
Hajmi0.77 Mb.
#1129439
1   ...   32   33   34   35   36   37   38   39   ...   50
Bog'liq
MAVZULAR UMUMIY

Kirib kelayotgan hodisalarni eshitish
C# dagi hodisalar chaqiruvchi kod tomonida hodisalarga ishlov bergichlarni (ya’ni hodisalarga ishlov beruvchi metodlarni) ro’yhatga olish bo’yicha ishlarni soddalashtiradi. Alohida yordamchi metodlarni ko’rsatish o’rniga, chaqiruvchi kod oddiy += va -= amallarini to’g’ridan-to’g’ri qo’llaydi. Hodisalarni hisobga (ro’yhatga) olish uchun ushbu andozadan foydalanish mumkin:
Ob’yektNomi.HodisaNomi += ChaqiriladiganMetod;
Masalan, quyidagicha:
AvtoToifasi cl = new AvtoToifasi("Jentra", 100, 10);
cl.AvtoIshdanChiqdi += AvtoHodisasiRoyBerdi;

Hodisalar manbasidan mosuvo bo’lish esa -= amali orqali ushbu andoza bilan amalga oshiriladi:
Ob’yektNomi.HodisaNomi -= ChaqiriladiganMetod;
Masalan, quyidagicha:
cl.AvtoIshdanChiqdi -= AvtoHodisasiRoyBerdi;
Bu andozalarga ega bo’lgan holda Program sinfini quyidagicha yozish mumkin:
internal class Program
{
static void Main(string[] args)
{ Console.WriteLine("***** Hodisalar bilan ishlash *****\n");
// AvtoToifasi ob'yektini yaratish
AvtoToifasi cl = new AvtoToifasi("Jentra", 100, 10);
//
cl.AvtoIshdanChiqdi += AvtoHodisasiRoyBerdi;
cl.AvtoIshdanChiqdi += AvtoHodisasiRoyBerdi2;
// Kompilyator taklif qilgan metod:
cl.AvtoHavfYoqasida += Cl_AvtoHavfYoqasida;
// Dasturchi yozgan metod:
cl.AvtoHavfYoqasida += ChaqirishUchunYanaBirMetod;
// Tezlikni oshirib borish (bu hodisani keltirib chiqaradi).
Console.WriteLine("***** Tezlik oshmoqda... *****");
for (int i = 0; i < 6; i++)
cl.Tezlanish(20);
Console.ReadLine(); // [Enter] bosilguncha kutish uchun
}
// Shaklini kompilyator yozgan metod:
private static void Cl_AvtoHavfYoqasida(string chaqiruvchiUchunXabar)
{
//throw new NotImplementedException();
Console.WriteLine("Kompilyator o'zi yozgan metod ichidan salom:");
Console.WriteLine(chaqiruvchiUchunXabar);
}
// Dasturchi yozgan metodlar:
public static void AvtoHodisasiRoyBerdi(string xabar)
{
Console.WriteLine("\n***** AvtoToifasi Obyektidan Xabar *****");
Console.WriteLine("=> {0}", xabar);
Console.WriteLine("***********************************\n");
}
public static void AvtoHodisasiRoyBerdi2(string xabar)
{
Console.WriteLine("\n***** AvtoToifasi Obyektidan Xabar *****");
Console.WriteLine("=> {0}", xabar.ToUpper());
Console.WriteLine("***********************************\n");
}
static void ChaqirishUchunYanaBirMetod(string xabar)
{
Console.WriteLine("O'zimiz yozgan metod ichidan salom:");
Console.WriteLine("= > AvtoToifasi Obyektidan Xabar: {0}", xabar);
}
}


Download 0.77 Mb.

Do'stlaringiz bilan baham:
1   ...   32   33   34   35   36   37   38   39   ...   50




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