Читаоци попут вас помажу у подршци МУО. Када обавите куповину користећи везе на нашем сајту, можда ћемо зарадити провизију за партнере. Опширније.

Енумс су користан тип података који вам омогућава да дефинишете листу именованих опција за променљиву. На пример, ако желите да сачувате сваки дан у недељи, можете користити енум да представите важеће вредности.

Енумови чине ваш код лакшим за читање и писање тако што подстичу смислена имена и ограничавају вредности које можете да користите. Често је згодно користити наредбу свитцх за руковање могућим вредностима енума.

Можете декларисати и користити енуме у многим програмским језицима, укључујући Ц#.

Како декларисати енум у Ц#

У Ц#, обично ћете декалирати енуме на нивоу именског простора. На пример, у Ц# конзолној апликацији, можете декларисати своје енуме као својства класе. Пример можете погледати у овоме ГитХуб репо.

класаПрограм
{
енум радни дан {
Понедељак,
уторак,
Среда,
четвртак,
петак,
субота,
недеља
}

статичнапразнинаГлавни(низ[] аргс)
{

}
}

Када декларишете енум, свака опција добија целобројну вредност која представља њен индекс. Подразумевано, прва вредност у енум-у има вредност индекса 0. Да бисте ово променили, можете да наведете сопствени индекс за први елемент када декларишете енум:

енум радни дан { 
понедељак = 1,
уторак,
Среда,
четвртак,
петак,
субота,
недеља
}

У овом случају, индекс првог елемента Понедељак почиње у 1. Индекс следећег елемента уторак биће 2, и тако даље.

Како приступити енум вредности у Ц#

Постоји много различитих начина на које можете приступити вредностима ускладиштеним унутар енума. Вредност враћена за сваку опцију у енум-у је индекс. За овај пример, вредност од Радним даном. петак је 5.

Један од начина на који можете да преузмете име енума је коришћење Енумс. ГетНаме() функција. Ово добија назив опције на индексу 5:

низ петак = Енум. ГетНаме(тип(радним даном), радним даном. петак);
Конзола. ВритеЛине("Хвала Богу да је" + петак + "!");
// Излаз = Хвала Богу да је петак!

Такође можете приступити вредности користећи њен индекс. У овом случају, вредност на индексу 2 у набрајању дана недеље (који је уторак) биће сачувана у променљивој:

Радни дан уторак = (радни дан)2;
Конзола. ВритеЛине("Данас је " + уторак);
// Излаз = Данас је уторак

Када проследите енум као аргумент у Конзола. ВритеЛине(), тхе тоСтринг() метода за енум се покреће аутоматски. То значи да уместо штампања праве нумеричке вредности енума, што је 5, штампаће вредност стринга, петак.

Конзола. ВритеЛине (радним даном. четвртак + "је ново" + Радним даном. петак);
// Излаз = Четвртак је нови петак

Можете такође претворити или рашчланити тип података у цео број као још један начин за чување индекса опције:

инт понедељакИндек = (инт) Радним даном. Понедељак;
Конзола. ВритеЛине (понедељакИндек);
// Излаз = 1

Како упоредити енуме у Ц#

У Ц#, можете да упоредите енуме користећи операторе поређења (==, !=, , <=, >=). Ово ће упоредити нумеричку вредност опција.

Дан у недељи1 = Дан у недељи. Понедељак;
Дан у недељи2 = Дан у недељи. уторак;

ако (дан1 == дан2)
{
Конзола. ВритеЛине(„Дани су исти“.);
}
друго
{
Конзола. ВритеЛине(„Дани су другачији.);
}

У овом примеру, вредност Веекдаи. Понедељак је 1, а вредност дана у недељи. Уторак је 2, дакле 1 == 2 поређење неће успети.

Други начин поређења енума је једнако() метод:

ако (дан 1. Једнако (дан 2))
{
Конзола. ВритеЛине(„Дани су исти“.);
}
друго
{
Конзола. ВритеЛине(„Дани су другачији.);
}

Можете такође користите Ц# свитцх наредбу да упореди вредност са сваком опцијом у енум. У овом примеру, код ће пасти у случај среда:

Веекдаи валуеТоЦомпаре = Дан у недељи. Среда;

прекидач (валуеТоЦомпаре)
{
случај Радним даном. Понедељак:
Конзола. ВритеЛине("Треба ми кафа.");
пауза;
случај Радним даном. уторак:
Конзола. ВритеЛине("Треба ми кафа.");
пауза;
случај Радним даном. Среда:
Конзола. ВритеЛине("Треба ми кафа.");
пауза;
случај Радним даном. четвртак:
Конзола. ВритеЛине("Четвртак је нови петак!");
пауза;
случај Радним даном. петак:
Конзола. ВритеЛине("Хвала Богу да је петак!");
пауза;
случај Радним даном. субота:
Конзола. ВритеЛине("Мој омиљени дан!");
пауза;
случај Радним даном. недеља:
Конзола. ВритеЛине("Мој други омиљени дан!");
пауза;
Уобичајено:
Конзола. ВритеЛине(„Неважећи дан у недељи.“);
пауза;
}

Како итерирати преко енума у ​​Ц#

Можете итерирати преко енума у ​​Ц# користећи Енум. ГетВалуес() метод, који враћа низ свих вредности у енум. Овај исечак кода се штампа сваког дана у недељи, укључујући понедељак, уторак и тако даље:

за сваки (радним даном ин Енум. ГетВалуес(тип(радним даном)))
{
Конзола. ВритеЛине((инт)дан); // За штампање индекса
Конзола. ВритеЛине (дан); // За штампање вредности текста
}

Такође можете итерирати преко енум вредности користећи Енум. ГетНамес() методом. Враћа листу вредности стрингова за представљање имена за опције набрајања:

за сваки (низ име ин Енум. ГетНамес(тип(радним даном)))
{
инт индекс = (инт)(радни дан) Енум. Парсе(тип(радни дан), име);

Конзола. ВритеЛине (индекс); // За штампање индекса
Конзола. ВритеЛине (име); // За штампање вредности текста
}

Коришћење енума у ​​Ц#

Можете користити енуме у свом коду да бисте га учинили читљивијим и мање склоним грешкама. Енумови такође могу бити веома корисни када су упарени са другим структурама, као што су речници.