Бағдарламаларды жазғанда әдетте бір бірімен байланысқан атаулары бар бірнеше тұрақтыларды анықтау қажет болады.
Ол үшін деректердің түгенделген типін қолдану ыңғайлы, оның барлық мүмкін мәндері бүтін санды тұрақтылар тізімімен анықталады, мысалы:
enum Кемпірқосақ { Қызыл, Тоқсары, Сары, Жасыл, Көк, Күлгін };
Жоғарыда келтірілген мысалда әрбір тұрақтыға еш әрекетсіз int типіндегі, 0-ден басталатын реттілік мәндер меншіктеледі, бірақ басқа да мәндерді меншіктеуге болады, мысалы:
enum Numer { Қызыл = 2, Тоқсары, Сары, Жасыл = 10, Көк };
Оранжевый және Сары тұрақтыларына 3 және 4 мәндері, Көк тұрақтысына 11 мәні меншіктеледі.
Әрбір тізім ішіндегі тұрақтылардың атаулары бірегей болуы керек, ал мәндері бірдей бола алады.
Тізімнің тұрақтылардан артықшылығы - байланыстырылған тұрақтылардың көрнекі болуында, сонымен қатар компилятор типтерді тексеруді орындайды, ал құру ортасы тұрақтылардың мүмкін мәндерін көрсетеді, тізім ретінде көрсетеді
Тізімді жазу пішімі:
[атрибуттар] [спецификаторлар] enum тізім_атауы [:базалық _тип ]
тізім_ денесі [ ; ]
Тізім спецификаторларының мағынасы класс үшін қолданылатын спецификаторлардың мағынасымен бірдей, сонымен қатар тек new, public, protected, internal және private спецификаторлары ғана рұқсат етілген.
Базалық тип – тізімді құрайтын элементтер типі. Еш әрекетсіз int типі қолданылады, бірақ типті бүтінсанды типтердің (char типінен өзге) ішінен таңдап, айқын түрде анықтауға болады: byte, sbyte, short, ushort, int, uint, long, ulong.
Тізім денесі тұрақтылар атауларынан тұрады, оның әрбіріне мәнді меншіктеуге болады. Егер мән көрсетілмесе, онда ол мән алдында тұрған тұрақтының мәніне бір қосылып есептеледі. Тұрақтылар еш әрекетсіз public спецификаторында болады.
Тізімдік типтегі айнымалылармен арифметикалық операцияларды (+, -, ++, - -), разряд бойынша логикалық операцияларды (^, &, |, ~) орындауға, оларды қатынас операциялары (<, <=, >, >=, ==, !=) арқылы салыстыруға және байтпен (sizeof) көлемін есептеуге болады.
Бүтін санды өрнектерде және меншіктеу операцияларында тізімдік типтегі айнымалыларды қолданғанда типті айқын түрлендіру керек.
Мысал (тізім туралы мысал [2] алынған):
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
struct Боец
{
public enum Воинское_Звание
{
Рядовой, Сержант, Лейтенант, Майор, Полковник, Генерал
}
public string Фамилия;
public Воинское_Звание Звание;
}
class Program
{
static void Main()
{
Боец x;
x.Фамилия = "Иванов";
x.Звание = Боец.Воинское_Звание.Рядовой;
for (int i = 1980; i < 2011; i = i + 5)
{
if (x.Звание <= Боец.Воинское_Звание.Генерал)
{
Console.WriteLine("Shili: {0} {1} {2}", i, x.Звание, x.Фамилия);
x.Звание++;
}
}
Console.WriteLine("Enter pernesin basiniz");
Console.ReadLine();
}
}
}
Бағдарлама жұмысы:
Shili: 1980 Рядовой Иванов
Shili: 1985 Сержант Иванов
Shili: 1990 Лейтенант Иванов
Shili: 1995 Майор Иванов
Shili: 2000 Полковник Иванов
Shili: 2005 Генерал Иванов
Enter pernesin basiniz
Достарыңызбен бөлісу: |