• WriteLine
  • ref modifikatoridan foydalanish




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

    ref modifikatoridan foydalanish
    O‘zgartirish parametrini o‘zgartirish chaqiruvining qiymati bo‘yicha emas, balki havola bo‘yicha majburlaydi. Ushbu modifikator metod e’lonida ham, metodni ishlatganda ham yoziladi. Quyidagi dasturda Sqr() metodi yaratilib, uning argumenti o‘rniga uning butun sonining kvadratini qaytaradi.
    ref modifikatorni qo‘llash va joylashishiga e’tibor berish lozim.
    using System;
    class RefTest {
    // Ushbu metod o‘z argumentini o‘zgartiradi.
    // ref modifikatordan foydalanish
    public void Sqr(ref int i)
    {
    i = i * i;
    }
    }
    class RefDemo {
    static void Main() {
    RefTest ob = new RefTest ();
    int a = 10;
    Console.WriteLine("а ning oldingi qiymati: " + a);
    ob.Sqr(ref a); // ref dan foydalanishga e’tibor bering
    Console.WriteLine("а ning keyingi qiymati: " + a);
    Console.ReadKey();
    }
    }
    Ko‘rinib turibdiki, modifikator metoddagi parametr e’lonidan oldin va metod chaqirilganda argumentdan oldin ko‘rsatiladi. Quyida ushbu dasturni bajarish natijasi keltirilgan, bu argumentning qiymati Sqr() metodi yordamida o‘zgarganligini ko‘rish mumkin.
    а ning oldingi qiymati: 10
    а ning keyingi qiymati: 100
    Endi, ref operatoridan foydalanib, oddiy turdagi ikkita argumentlarning qiymatlarini o‘zaro almashtiradigan metod yozish mumkin. Misol tariqasida, quyida Swap() metodi chaqirilganda uning ikkita butun sonli argumentlari qiymatlarini o‘zgartiradigan dastur mavjud.
    using System;
    class ValueSwap
    {
    // Ushbu metod o‘z argumentlarini almashtiradi
    public void Swap1(ref int a, ref int b)
    {
    int t;
    t = a;
    a = b;
    b = t;
    }
    // Ushbu metod o‘z argumentlarini almashtirmaydi

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




    Download 5,29 Mb.