Delegatlar reja: Kirish 1



Yüklə 215,95 Kb.
səhifə8/12
tarix22.03.2024
ölçüsü215,95 Kb.
#182299
1   ...   4   5   6   7   8   9   10   11   12
DELEGATLAR

2
3
4
5

Message? message = Salom Dasturchi!;
message += _;
message();
message -= _; 
if (message != null) message();

Delegatdan usullarni olib tashlash haqiqatda usul chaqiruvi ro'yxatida 1 kamroq usulni o'z ichiga olgan yangi delegatni yaratadi.
Shuni ta'kidlash kerakki, usulni o'chirishda delegatda usullar bo'lmasligi va keyin o'zgaruvchining null bo'lishi mumkin bo'lgan vaziyat yuzaga kelishi mumkin. Shuning uchun, bu holda, o'zgaruvchi faqat turdagi o'zgaruvchi sifatida emas Message, balki Message? , bu xabar vakili yoki null qiymatni ifodalashi mumkin bo'lgan tur.
Bundan tashqari, ikkinchi qo'ng'iroqdan oldin biz o'zgaruvchini null uchun tekshiramiz.
Yo'q qilishda shuni yodda tutingki, agar delegatda bir xil usulga bir nechta havolalar bo'lsa, u holda -= operatsiyasi delegatning chaqiruv ro'yxatining oxiridan qidirishni boshlaydi va faqat birinchi topilgan hodisani olib tashlaydi. Agar delegatning chaqiruv ro'yxatida bunday usul bo'lmasa, -= operatsiyasi hech qanday ta'sir qilmaydi. Delegatlarni birlashtirish uchun Delegatlar boshqa delegatlarga birlashtirilishi mumkin. Misol uchun:

1
2
3
4
5
6
7
8

Message mes1 = Salom Dasturchi!;
Message mes2 = HowAreYou;
Message mes3 = mes1 + mes2;
mes3();
void Salom Dasturchi!() => Console.WriteLine("Salom Dasturchi!");
void HowAreYou() => Console.WriteLine("How are you?");

Yüklə 215,95 Kb.

Dostları ilə paylaş:
1   ...   4   5   6   7   8   9   10   11   12




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə