Енумс су користан тип података који вам омогућава да дефинишете листу именованих опција за променљиву. На пример, ако желите да сачувате сваки дан у недељи, можете користити енум да представите важеће вредности.
Енумови чине ваш код лакшим за читање и писање тако што подстичу смислена имена и ограничавају вредности које можете да користите. Често је згодно користити наредбу свитцх за руковање могућим вредностима енума.
Можете декларисати и користити енуме у многим програмским језицима, укључујући Ц#.
Како декларисати енум у Ц#
У Ц#, обично ћете декалирати енуме на нивоу именског простора. На пример, у Ц# конзолној апликацији, можете декларисати своје енуме као својства класе. Пример можете погледати у овоме ГитХуб репо.
класаПрограм
{
енум радни дан {
Понедељак,
уторак,
Среда,
четвртак,
петак,
субота,
недеља
}
статичнапразнинаГлавни(низ[] аргс)
{
}
}
Када декларишете енум, свака опција добија целобројну вредност која представља њен индекс. Подразумевано, прва вредност у енум-у има вредност индекса 0. Да бисте ово променили, можете да наведете сопствени индекс за први елемент када декларишете енум:
енум радни дан {
понедељак = 1,
уторак,
Среда,
четвртак,
петак,
субота,
недеља
}
У овом случају, индекс првог елемента Понедељак почиње у 1. Индекс следећег елемента уторак биће 2, и тако даље.
Како приступити енум вредности у Ц#
Постоји много различитих начина на које можете приступити вредностима ускладиштеним унутар енума. Вредност враћена за сваку опцију у енум-у је индекс. За овај пример, вредност од Радним даном. петак је 5.
Један од начина на који можете да преузмете име енума је коришћење Енумс. ГетНаме() функција. Ово добија назив опције на индексу 5:
низ петак = Енум. ГетНаме(тип(радним даном), радним даном. петак);
Конзола. ВритеЛине("Хвала Богу да је" + петак + "!");
// Излаз = Хвала Богу да је петак!
Такође можете приступити вредности користећи њен индекс. У овом случају, вредност на индексу 2 у набрајању дана недеље (који је уторак) биће сачувана у променљивој:
Радни дан уторак = (радни дан)2;
Конзола. ВритеЛине("Данас је " + уторак);
// Излаз = Данас је уторак
Када проследите енум као аргумент у Конзола. ВритеЛине(), тхе тоСтринг() метода за енум се покреће аутоматски. То значи да уместо штампања праве нумеричке вредности енума, што је 5, штампаће вредност стринга, петак.
Конзола. ВритеЛине (радним даном. четвртак + "је ново" + Радним даном. петак);
// Излаз = Четвртак је нови петак
Можете такође претворити или рашчланити тип података у цео број као још један начин за чување индекса опције:
инт понедељакИндек = (инт) Радним даном. Понедељак;
Конзола. ВритеЛине (понедељакИндек);
// Излаз = 1
Како упоредити енуме у Ц#
У Ц#, можете да упоредите енуме користећи операторе поређења (==, !=, , <=, >=). Ово ће упоредити нумеричку вредност опција.
Дан у недељи1 = Дан у недељи. Понедељак;
Дан у недељи2 = Дан у недељи. уторак;
ако (дан1 == дан2)
{
Конзола. ВритеЛине(„Дани су исти“.);
}
друго
{
Конзола. ВритеЛине(„Дани су другачији.);
}
У овом примеру, вредност Веекдаи. Понедељак је 1, а вредност дана у недељи. Уторак је 2, дакле 1 == 2 поређење неће успети.
Други начин поређења енума је једнако() метод:
ако (дан 1. Једнако (дан 2))
{
Конзола. ВритеЛине(„Дани су исти“.);
}
друго
{
Конзола. ВритеЛине(„Дани су другачији.);
}
Можете такође користите Ц# свитцх наредбу да упореди вредност са сваком опцијом у енум. У овом примеру, код ће пасти у случај среда:
Веекдаи валуеТоЦомпаре = Дан у недељи. Среда;
прекидач (валуеТоЦомпаре)
{
случај Радним даном. Понедељак:
Конзола. ВритеЛине("Треба ми кафа.");
пауза;
случај Радним даном. уторак:
Конзола. ВритеЛине("Треба ми кафа.");
пауза;
случај Радним даном. Среда:
Конзола. ВритеЛине("Треба ми кафа.");
пауза;
случај Радним даном. четвртак:
Конзола. ВритеЛине("Четвртак је нови петак!");
пауза;
случај Радним даном. петак:
Конзола. ВритеЛине("Хвала Богу да је петак!");
пауза;
случај Радним даном. субота:
Конзола. ВритеЛине("Мој омиљени дан!");
пауза;
случај Радним даном. недеља:
Конзола. ВритеЛине("Мој други омиљени дан!");
пауза;
Уобичајено:
Конзола. ВритеЛине(„Неважећи дан у недељи.“);
пауза;
}
Како итерирати преко енума у Ц#
Можете итерирати преко енума у Ц# користећи Енум. ГетВалуес() метод, који враћа низ свих вредности у енум. Овај исечак кода се штампа сваког дана у недељи, укључујући понедељак, уторак и тако даље:
за сваки (радним даном ин Енум. ГетВалуес(тип(радним даном)))
{
Конзола. ВритеЛине((инт)дан); // За штампање индекса
Конзола. ВритеЛине (дан); // За штампање вредности текста
}
Такође можете итерирати преко енум вредности користећи Енум. ГетНамес() методом. Враћа листу вредности стрингова за представљање имена за опције набрајања:
за сваки (низ име ин Енум. ГетНамес(тип(радним даном)))
{
инт индекс = (инт)(радни дан) Енум. Парсе(тип(радни дан), име);
Конзола. ВритеЛине (индекс); // За штампање индекса
Конзола. ВритеЛине (име); // За штампање вредности текста
}
Коришћење енума у Ц#
Можете користити енуме у свом коду да бисте га учинили читљивијим и мање склоним грешкама. Енумови такође могу бити веома корисни када су упарени са другим структурама, као што су речници.