|
Kompyuter tizimlari kafedrasi
|
bet | 103/154 | Sana | 08.01.2024 | Hajmi | 5,29 Mb. | | #131939 |
Bog'liq MajmuaYana 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
}
|
| |