• Swap1 (ref
  • Xulosa: ref
  • Kompyuter tizimlari kafedrasi




    Download 5,29 Mb.
    bet99/154
    Sana08.01.2024
    Hajmi5,29 Mb.
    #131939
    1   ...   95   96   97   98   99   100   101   102   ...   154
    Bog'liq
    Majmua

    public void Swap2(int a, int b)
    {
    int t;
    t = a;
    a = b;
    b = t;
    }
    }
    class ValueSwapDemo
    {
    static void Main()
    {
    ValueSwap ob = new ValueSwap();
    int x = 10, y = 20;
    ob.Swap2(x, y);
    Console.WriteLine("Swap2 funksiyada х va у qiymati: " + x + " " + y);
    ob.Swap1(ref x, ref y);
    Console.WriteLine("Swap1 funksiyada х va у qiymati: " + x + " " + y);
    Console.ReadKey();
    }
    }
    Mana, ushbu dastur bajarilishining natijasi.
    Swap2 funksiyada х va у qiymati: 10 20
    Swap1 funksiyada х va у qiymati: 20 10
    ref modifikatoriga nisbatan quyidagilarni yodda tutish kerak. Ushbu modifikator yordamida mos havola orqali olingan argumentga metod chaqirilishidan oldin qiymat belgilanishi kerak. Bunday argumentni parametr sifatida qabul qiladigan metodda parametr haqiqiy qiymatga tegishli deb taxmin qilinadi. Shuning uchun metodda ref o‘zgartirgichdan foydalanganda argumentning boshlang‘ich qiymatini aniqlay olmaysiz.
    Xulosa: ref kalit so‘zi qachonki, biz metod parametri faqat kerakli natija uchun vosita sifatida emas, balki parametrning qiymatini o‘zgartirish ustuvor vazifa bo‘lsa zarur bo‘ladi.
    out modifikatoridan foydalanish
    Ba’zida metoddan qiymat olish uchun unga o‘tish uchun emas, balki mos havola parametridan foydalanish kerak bo‘ladi. Aytaylik, ba’zi funksiyalarni bajaradigan metod mavjud, masalan, tarmoq rozetkasini ochish va ushbu operatsiyani muvaffaqiyatli yoki muvaffaqiyatsiz yakunlash uchun kodni mos havola parametri sifatida qaytarish. Bunday holda, metodga hech qanday ma’lumot uzatilmaydi, lekin ma’lum ma’lumotlarni qaytarishi kerak. Ushbu holatda asosiy qiyinchilik, metodni chaqirishdan oldin, ushbu turdagi ref parametrini ma’lum bir qiymat bilan boshlash kerak. Shuning uchun ushbu turdagi parametrni ishlatishda argument uchun ref qiymatini belgilash va shu bilan ushbu cheklovni yengib o‘tish kerak. C# da ushbu qiyinchilikdan chiqishning yanada qulay usuli bor ya’ni out parametrlarni o‘zgartirish vositasidan foydalanish.
    Parametrni o‘zgartiradigan modifikator, faqat bitta istisnosiz, ref modifikatoriga o‘xshaydi: u faqat metoddan tashqaridagi qiymatni uzatish uchun xizmat qiladi. Shuning uchun kiruvchi parametr sifatida ishlatiladigan o‘zgaruvchiga qiymat tayinlash kerak emas (va foydasiz). Bundan tashqari, ushbu metodda out parametr, ya’ni initsializatsiya qilinmagan deb hisoblanadi. uning boshlang‘ich qiymati yo‘q deb taxmin qilinadi. Bu metod bajarilishidan oldin qiymat ushbu parametrga tayinlanishi kerakligini anglatadi. Shuning uchun funksiyani chaqirgandan so‘ng, out parametr ba’zi qiymatlarni o‘z ichiga oladi.
    Quyida out parametridan foydalanishga misol keltirilgan. Ushbu misol dasturda suzuvchi nuqtali sonni butun va kasr qismlarga ajratish uchun Ajratish sinfidagi GetParts() metodi qo‘llaniladi. Berilgan sonning har bir qismi qanday qilib qaytarilishiga e’tibor bering.

    Download 5,29 Mb.
    1   ...   95   96   97   98   99   100   101   102   ...   154




    Download 5,29 Mb.