Tādi lasītāji kā jūs palīdz atbalstīt MUO. Veicot pirkumu, izmantojot saites mūsu vietnē, mēs varam nopelnīt filiāles komisiju. Lasīt vairāk.

Enums ir noderīgs datu tips, kas ļauj definēt mainīgā lieluma nosaukto opciju sarakstu. Piemēram, ja vēlaties saglabāt katru nedēļas dienu, derīgo vērtību attēlošanai varat izmantot sarakstu.

Enums atvieglo koda lasīšanu un rakstīšanu, veicinot jēgpilnus nosaukumus un ierobežojot izmantojamās vērtības. Bieži vien ir ērti izmantot slēdža paziņojumu, lai apstrādātu iespējamās enum vērtības.

Jūs varat deklarēt un izmantot enums daudzās programmēšanas valodās, tostarp C#.

Kā deklarēt Enum C#

C# valodā jūs parasti atdalīsit enums nosaukumvietas līmenī. Piemēram, C# konsoles lietojumprogrammā savus enumus varat deklarēt kā klases rekvizītus. Šeit varat apskatīt piemēru GitHub repo.

klasēProgramma
{
enum darba diena {
pirmdiena,
otrdiena,
trešdien,
ceturtdiena,
piektdiena,
sestdiena,
svētdiena
}

statisksnederīgsGalvenā(stīga[] args)
{

}
}

Kad deklarējat enum, katra opcija iegūst veselu skaitļu vērtību, kas atspoguļo tās indeksu. Pēc noklusējuma enum pirmās vērtības indeksa vērtība ir 0. Lai to mainītu, varat norādīt savu indeksu pirmajam elementam, kad deklarējat enum:

instagram viewer

enum darba diena { 
Pirmdiena = 1,
otrdiena,
trešdien,
ceturtdiena,
piektdiena,
sestdiena,
svētdiena
}

Šajā gadījumā pirmā elementa indekss pirmdiena sākas plkst 1. Nākamā elementa indekss otrdiena būs 2, un tā tālāk.

Kā piekļūt Enum vērtībai C#

Ir daudz dažādu veidu, kā piekļūt enums saglabātajām vērtībām. Katrai enum opcijai atgrieztā vērtība ir indekss. Šajā piemērā vērtība Darba diena. piektdiena ir 5.

Viens veids, kā izgūt enum nosaukumu, ir izmantot Enums. GetName() funkciju. Tas iegūst opcijas nosaukumu indeksā 5:

stīga piektdiena = Enum. GetName(veids(darba diena), darba diena. piektdiena);
Konsole. WriteLine("Paldies Dievam, ka tas ir" + piektdiena + "!");
// Izvade = Paldies Dievam, ka ir piektdiena!

Varat arī piekļūt vērtībai, izmantojot tās indeksu. Šajā gadījumā vērtība indeksā 2 nedēļas dienu sarakstā (kas ir otrdiena) tiks saglabāta mainīgajā:

darba diena otrdiena = (darba diena)2;
Konsole. WriteLine("Šodien ir " + otrdiena);
// Izvade = Šodien ir otrdiena

Kad jūs nododat sarakstu kā argumentu Konsole. WriteLine(), toString() enum metode darbojas automātiski. Tas nozīmē, ka tā vietā, lai drukātu enum patieso skaitlisko vērtību, kas ir 5, tas izdrukās virknes vērtību, piektdiena.

Konsole. WriteLine (darba diena. Ceturtdiena + "ir jaunais" + darba diena. piektdiena);
// Izvade = ceturtdiena ir jaunā piektdiena

Jūs varat arī konvertēt vai parsēt datu tipu veselā skaitlī kā vēl viens veids, kā saglabāt opcijas indeksu:

starpt pirmdienaIndekss = (starpt) darba diena. pirmdiena;
Konsole. WriteLine (mondayIndex);
// Izvade = 1

Kā salīdzināt enumus C#

C# valodā varat salīdzināt enumus, izmantojot salīdzināšanas operatorus (==, !=, , <=, >=). Tas salīdzinās opciju skaitlisko vērtību.

Weekday day1 = nedēļas diena. pirmdiena;
Weekday day2 = nedēļas diena. otrdiena;

ja (1. diena == 2. diena)
{
Konsole. WriteLine("Dienas ir vienādas.");
}
cits
{
Konsole. WriteLine("Dienas ir dažādas.");
}

Šajā piemērā nedēļas dienas vērtība. Pirmdiena ir 1, un nedēļas diena ir vērtība. Otrdiena ir 2, tāpēc 1 == 2 salīdzināšana neizdosies.

Vēl viens enumu salīdzināšanas veids ir Vienāds() metode:

ja (diena1.Vienāds (diena2))
{
Konsole. WriteLine("Dienas ir vienādas.");
}
cits
{
Konsole. WriteLine("Dienas ir dažādas.");
}

Jūs varat arī izmantojiet C# slēdža priekšrakstu lai salīdzinātu vērtību ar katru enum opciju. Šajā piemērā kods ietilps trešdienas gadījumā:

Nedēļas diena valueToCompare = nedēļas diena. trešdiena;

slēdzis (valueToCompare)
{
lietu Darba diena. Pirmdiena:
Konsole. WriteLine("Man vajag kafiju.");
pārtraukums;
lietu Darba diena. otrdiena:
Konsole. WriteLine("Man vajag kafiju.");
pārtraukums;
lietu Darba diena. trešdiena:
Konsole. WriteLine("Man vajag kafiju.");
pārtraukums;
lietu Darba diena. ceturtdiena:
Konsole. WriteLine("Ceturtdiena ir jaunā piektdiena!");
pārtraukums;
lietu Darba diena. piektdiena:
Konsole. WriteLine("Paldies Dievam piektdiena ir klāt!");
pārtraukums;
lietu Darba diena. sestdiena:
Konsole. WriteLine("Mana mīļākā diena!");
pārtraukums;
lietu Darba diena. svētdiena:
Konsole. WriteLine("Mana cita mīļākā diena!");
pārtraukums;
noklusējuma:
Konsole. WriteLine("Nederīga nedēļas diena.");
pārtraukums;
}

Kā atkārtot enumus C#

Varat atkārtot enums C#, izmantojot Enum. GetValues() metodi, kas atgriež visu enum vērtību masīvu. Šis koda fragments tiek drukāts katru nedēļas dienu, tostarp pirmdienu, otrdienu un tā tālāk.

katram (darba diena iekšā Enum. GetValues(veids(darba diena)))
{
Konsole. WriteLine((starpt)diena); // Lai izdrukātu indeksu
Konsole. WriteLine (diena); // Lai izdrukātu teksta vērtību
}

Varat arī atkārtot enum vērtības, izmantojot Enum. GetNames() metodi. Tas atgriež virkņu vērtību sarakstu, kas attēlo enum opciju nosaukumus:

katram (stīga nosaukums iekšā Enum. GetNames(veids(darba diena)))
{
starpt indekss = (starpt)(Nedēļas diena) Enum. Parse(veids(Nedēļas diena), vārds);

Konsole. WriteLine (indekss); // Lai izdrukātu indeksu
Konsole. WriteLine (nosaukums); // Lai izdrukātu teksta vērtību
}

Enums izmantošana C#

Kodā varat izmantot enums, lai padarītu to lasāmāku un mazāk pakļautu kļūdām. Enums var būt ļoti noderīgi arī tad, ja tie tiek savienoti pārī ar citām struktūrām, piemēram, vārdnīcām.