• Salom(); // Salom Dunyo
  • Mavzu: C# tilida delegatlar, hodisalar va lambda ifodalardan foydalanish




    Download 1.15 Mb.
    bet10/11
    Sana24.06.2023
    Hajmi1.15 Mb.
    #75594
    1   2   3   4   5   6   7   8   9   10   11
    Bog'liq
    Mavzu C# tilida delegatlar, hodisalar va lambda ifodalardan foy
    Firminiy blanka, Sultonova Dilobarxon, 1, contract 952124723, 1135632, Dinshunoslik. Mustaqil ish, Fozilov Bekzodbek Avtomobil ekologik xavfsizligi Mustaqil ish, Fozilov Bekzodbek IN va DA mustaqil ish, 0708 electricity, Masalalar to`plami, Moliya va soliqlar, Kamqonlik asoratlari, 1-mavzu. Jismoniy rivojlanishni tekshirish va baholash usullari., CEFR WRITING TASK 1 - LETTERS @FunEnglishwithme(1)
    5
    6

    Xabar salom = () =>
    {
    Console Write ("Salom");
    Console.WriteLine("Dunyo");
    };
    Salom(); // Salom Dunyo

    Yuqorida biz xabar delegatini ifodalovchi salom o'zgaruvchisini aniqladik. Ammo C# 10 dan boshlab , lambda ifodasini belgilashda yashirin yozishdan ( var ifodasi bilan o'zgaruvchini aniqlash) foydalanishimiz mumkin :

    1
    2
    3
    4

    var hello = () => Console.WriteLine("Salom");
    Salom(); // Salom
    Salom(); // Salom
    Salom(); // Salom

    Lekin bu holatda salom qaysi turni ifodalaydi? Yashirin terish bilan kompilyatorning o'zi ba'zi delegatlar bilan ta'rifi asosida lambda ifodasini moslashtirishga harakat qiladi. Misol uchun, yuqorida tavsiflangan standart salom lambda ifodasi kompilyator tomonidan hech qanday parametrlarni qabul qilmaydigan va hech narsa qaytarmaydigan o'rnatilgan Action delegatining o'zgaruvchisi sifatida ko'rib chiqiladi . Parametrlar ro'yxatini belgilashda biz ular uchun ma'lumotlar turini belgilamasligimiz mumkin:

    1
    2
    3
    4
    5

    Operation sum = (x, y) => Console.WriteLine($"{x} + {y} = {x + y}");
    sum(1, 2); // 1 + 2 = 3
    sum(22, 14); // 22 + 14 = 36
    delegate void Operation(int x, int y);

    Bunday holda, kompilyator yig'indisi lambda ifodasi Operatsiya turini ifodalashini ko'radi, ya'ni ikkala lambda parametri ham turni ifodalaydi int. Shuning uchun hech qanday muammo tug'ilmaydi. Biroq, agar biz yashirin yozishdan foydalansak, kompilyator lambda ifodasi uchun delegat turini xulosa qilishda qiyinchiliklarga duch kelishi mumkin, masalan, quyidagi holatda


    Download 1.15 Mb.
    1   2   3   4   5   6   7   8   9   10   11




    Download 1.15 Mb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Mavzu: C# tilida delegatlar, hodisalar va lambda ifodalardan foydalanish

    Download 1.15 Mb.