Delegatlar reja: Kirish 1



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

9
10
11
12
13

Operation operation = Add; // delegat usulga ishora qiladi
int result = operation(4, 5);
Console.WriteLine(result);
operation = Multiply; // endi delegat Mutiply usulga ishora qiladi
result = operation(4, 5);
Console.WriteLine(result);
int Add(int x, int y) => x + y;
int Multiply(int x, int y) => x * y;
delegate int Operation(int x, int y);

Bunday holda, Operatsiya vakili int qiymatini qaytaradi va ikkita int parametriga ega. Shuning uchun bu delegat int qiymatini qaytaradigan va ikkita int parametrini oladigan har qanday usulga mos keladi. Bunday holda, bular Qo'shish va Ko'paytirish usullari. Ya'ni, biz ushbu usullardan istalganini delegat o'zgaruvchisiga belgilashimiz va qo'ng'iroq qilishimiz mumkin. Delegat int tipidagi ikkita parametrni olganligi sababli, siz uni chaqirganingizda, ushbu parametrlar uchun qiymatlarni o'tkazishingiz kerak: operation(4,5). Usul ma'lumotnomasini tayinlash. Yuqorida delegat o'zgaruvchisi to'g'ridan-to'g'ri usulga tayinlangan. Boshqa usul ham bor - konstruktor yordamida delegat ob'ektini yaratish, unga kerakli usul o'tkaziladi:

1
2
3
4
5
6

Operation operation1 = Add;
Operation operation2 = new Operation(Add);
int Add(int x, int y) => x + y;
delegate int Operation(int x, int y);

Ikkala yo'l ham bir xil natija beradi. Delegatga xaritalash usullari. Yuqorida yozilganidek, usullar bir xil qaytish turiga va bir xil parametrlar to'plamiga ega bo'lsa, delegatga mos keladi. Lekin shuni yodda tutingkiref , in va out modifikatorlari ham hisobga olinadi . Masalan, bizda delegat bor deylik:


Yüklə 215,95 Kb.

Dostları ilə paylaş:
1   2   3   4   5   6   7   8   9   ...   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ə