• WriteLine
  • Kompyuter tizimlari kafedrasi




    Download 5,29 Mb.
    bet103/154
    Sana08.01.2024
    Hajmi5,29 Mb.
    #131939
    1   ...   99   100   101   102   103   104   105   106   ...   154
    Bog'liq
    Majmua

    Yana bitta misol:
    DoOperation(10, 5, Operation.Add); // 15
    DoOperation(10, 5, Operation.Subtract); // 5
    DoOperation(10, 5, Operation.Multurly); // 50
    DoOperation(10, 5, Operation.Divide); // 2
    void DoOperation(double x, double y, Operation op)
    {
    double result = op switch
    {
    Operation.Add => x + y,
    Operation.Subtract => x - y,
    Operation.Multurly => x * y,
    Operation.Divide => x / y
    };
    Console.WriteLine(result);
    }
    enum Operation
    {
    Add,
    Subtract,
    Multurly,
    Divide
    }
    Bu arifmetik amallarni ifodalovchi ro‘yxatni belgilaydi. Har bir operatsiya turi sanab o‘tish konstantalaridan biri sifatida aniqlanadi. DoOperation() metodi aniqlanadi, u parametrlar sifatida enum sifatida ikkita son va operatsiya turini oladi va shu turga qarab switch konstruktsiyasidan ma’lum bir operatsiya natijasini qaytaradi.
    enum konstantalarining turi va qiymatlari
    enum konstantalari turga ega bo‘lishi mumkin. Tur sanab o‘tilgan nomdan keyin ko‘rsatiladi, ikki nuqta bilan ajratiladi:
    enum Time : byte
    {
    Morning,
    Afternoon,
    Evening,
    Night
    }
    Sanoq turi butun son turini ifodalashi kerak (bayt, sbayt, short, ushort, int, uint, long, ulong). Agar tur aniq ko‘rsatilmagan bo‘lsa, standart tur int bo‘ladi.
    Ro‘yxatdagi har bir elementga butun son qiymati beriladi, birinchi element 0, ikkinchisi 1 va hokazo. Masalan, yuqorida belgilangan DayTime ni ko‘ramiz:
    DayTime now = DayTime.Morning;
    Console.WriteLine((int)now); // 0
    Console.WriteLine((int)DayTime.Night); // 3
    enum DayTime
    {
    Morning,
    Afternoon,
    Evening,
    Night
    }
    enum konstantasining butun qiymatini olish uchun quyidagi operatordan foydalanish mumkin:
    (int) DayTime.Night // 3
    Shu bilan birga, har bir konstanta ma’lum bir songa mos kelsa ham, unga sonli qiymat berib bo‘lmaydi:
    DayTime now = 2; // ! Xato
    Bundan tashqari, element birinchi elementning qiymatini belgilash mumkin:
    enum DayTime
    {
    Morning = 3, // har bir keyingi element standart bittaga oshiriladi
    Afternoon, // bu element 4 ga teng
    Evening, // 5
    Night // 6
    }
    yoki barcha elementlar uchun qiymatlarni ham belgilash mumkin:
    enum DayTime
    {
    Morning = 2,
    Afternoon = 4,
    Evening = 8,
    Night = 16
    }
    Bunday holda, sanab o‘tiluvchi konstantalar bir xil qiymatlarga ega bo‘lishi mumkin yoki bitta o‘zgarmasga boshqa o‘zgarmasning qiymati ham berilishi mumkin:
    enum DayTime
    {
    Morning = 1,
    Afternoon = Morning,
    Evening = 2,
    Night = 2
    }



    Download 5,29 Mb.
    1   ...   99   100   101   102   103   104   105   106   ...   154




    Download 5,29 Mb.