Tokie skaitytojai kaip jūs padeda palaikyti MUO. Kai perkate naudodami nuorodas mūsų svetainėje, galime uždirbti filialų komisinius. Skaityti daugiau.

Enums yra naudingas duomenų tipas, leidžiantis apibrėžti kintamojo įvardytų parinkčių sąrašą. Pavyzdžiui, jei norite išsaugoti kiekvieną savaitės dieną, galiojančioms reikšmėms nurodyti galite naudoti sąrašą.

Enums palengvina kodo skaitymą ir rašymą, nes skatina prasmingus pavadinimus ir apriboja reikšmes, kurias galite naudoti. Dažnai patogu naudoti perjungimo teiginį norint tvarkyti galimas enum reikšmes.

Galite deklaruoti ir naudoti enumus daugelyje programavimo kalbų, įskaitant C#.

Kaip deklaruoti enumą C#

C# kalboje enums paprastai žymėsite vardų erdvės lygiu. Pavyzdžiui, C# konsolės programoje galite deklaruoti savo sąrašus kaip klasės ypatybes. Čia galite peržiūrėti pavyzdį „GitHub“ atpirkimas.

klasėPrograma
{
enum Savaitės diena {
pirmadienis,
antradienis,
trečiadienį,
ketvirtadienis,
penktadienis,
šeštadienis,
sekmadienis
}

statinistuštumaPagrindinis(styga[] args)
{

}
}

instagram viewer

Kai deklaruojate sąrašą, kiekviena parinktis gauna sveikojo skaičiaus reikšmę, atspindinčią jos indeksą. Pagal numatytuosius nustatymus pirmosios sąrašo reikšmės indekso reikšmė yra 0. Norėdami tai pakeisti, galite nurodyti savo pirmojo elemento indeksą, kai deklaruojate sąrašą:

enum Savaitės diena { 
Pirmadienis = 1,
antradienis,
trečiadienį,
ketvirtadienis,
penktadienis,
šeštadienis,
sekmadienis
}

Šiuo atveju pirmojo elemento indeksas pirmadienis prasideda val 1. Kito elemento indeksas antradienis bus 2, ir taip toliau.

Kaip pasiekti Enum reikšmę C#

Yra daug skirtingų būdų, kaip pasiekti enumse saugomas reikšmes. Kiekvienos sąrašo parinkties grąžinama vertė yra indeksas. Šiame pavyzdyje vertė Savaitės diena. penktadienis yra 5.

Vienas iš būdų, kaip gauti sąrašo pavadinimą, yra naudoti Enums. GetName() funkcija. Tai gauna 5 indekso parinkties pavadinimą:

styga penktadienis = Enum. GetName(tipas(savaitės diena), savaitės diena. penktadienis);
Konsolė. WriteLine("Ačiū Dievui, tai" + penktadienis + "!");
// Išvestis = Ačiū Dievui, kad penktadienis!

Be to, vertę galite pasiekti naudodami jos indeksą. Tokiu atveju savaitės dienų sąrašo 2 indekso reikšmė (tai yra antradienis) bus saugoma kintamajame:

Savaitės diena antradienis = (savaitės diena)2;
Konsolė. WriteLine("Šiandien yra " + antradienis);
// Išvestis = Šiandien yra antradienis

Kai pateikiate enum kaip argumentą į Konsolė. WriteLine(), toString() enum metodas veikia automatiškai. Tai reiškia, kad vietoj to, kad būtų spausdinama tikroji enum skaitinė reikšmė, kuri yra 5, atspausdins eilutės reikšmę, penktadienis.

Konsolė. WriteLine (savaitės diena. Ketvirtadienis + "yra nauja" + Savaitės diena. penktadienis);
// Išvestis = ketvirtadienis yra naujas penktadienis

Tu taip pat gali konvertuoti arba išanalizuoti duomenų tipą į sveikąjį skaičių kaip kitą būdą išsaugoti parinkties indeksą:

tarpt pirmadienisIndeksas = (tarpt) Savaitės diena. pirmadienis;
Konsolė. WriteLine (mondayIndex);
// Išvestis = 1

Kaip palyginti enumus C#

C# kalboje galite palyginti eilutes naudodami palyginimo operatorius (==, !=, , <=, >=). Taip bus palyginta parinkčių skaitinė reikšmė.

Savaitės diena day1 = savaitės diena. pirmadienis;
Savaitės diena 2 = savaitės diena. antradienis;

jeigu (1 diena == 2 diena)
{
Konsolė. WriteLine(„Dienos tokios pat“.);
}
Kitas
{
Konsolė. WriteLine(– Dienos skirtingos.);
}

Šiame pavyzdyje savaitės dienos reikšmė. Pirmadienis yra 1, o savaitės dienos reikšmė. Antradienis yra 2, todėl 1 == 2 lyginti nepavyks.

Kitas enums palyginimo būdas yra Lygu () metodas:

jeigu (1 diena. Lygu (2 diena))
{
Konsolė. WriteLine(„Dienos tokios pat“.);
}
Kitas
{
Konsolė. WriteLine(– Dienos skirtingos.);
}

Tu taip pat gali naudokite C# jungiklio teiginį norėdami palyginti vertę su kiekviena sąrašo parinktimi. Šiame pavyzdyje kodas pateks į trečiadienio atvejį:

Savaitės diena valueToCompare = savaitės diena. Trečiadienis;

jungiklis (valueToCompare)
{
atveju Savaitės diena. Pirmadienis:
Konsolė. WriteLine("Man reikia kavos.");
pertrauka;
atveju Savaitės diena. antradienis:
Konsolė. WriteLine("Man reikia kavos.");
pertrauka;
atveju Savaitės diena. Trečiadienis:
Konsolė. WriteLine("Man reikia kavos.");
pertrauka;
atveju Savaitės diena. Ketvirtadienis:
Konsolė. WriteLine("Ketvirtadienis yra naujas penktadienis!");
pertrauka;
atveju Savaitės diena. Penktadienis:
Konsolė. WriteLine("Aciu dievui jau penktadienis!");
pertrauka;
atveju Savaitės diena. Šeštadienis:
Konsolė. WriteLine("Mano mėgstamiausia diena!");
pertrauka;
atveju Savaitės diena. sekmadienis:
Konsolė. WriteLine("Kita mano mėgstamiausia diena!");
pertrauka;
numatytas:
Konsolė. WriteLine(„Netinkama savaitės diena“.);
pertrauka;
}

Kaip kartoti eiles C#

Galite kartoti eilutes C# naudodami Enum. GautiValues() metodas, kuris grąžina visų sąraše esančių reikšmių masyvą. Šis kodo fragmentas spausdinamas kiekvieną savaitės dieną, įskaitant pirmadienį, antradienį ir pan.:

kiekvienam (Savaitės diena in Enum. GetValues(tipas(savaitės diena)))
{
Konsolė. WriteLine((tarpt)diena); // Norėdami spausdinti rodyklę
Konsolė. WriteLine (diena); // Norėdami spausdinti teksto reikšmę
}

Taip pat galite kartoti enum reikšmes naudodami Enum. GetNames () metodas. Jis grąžina eilučių reikšmių sąrašą, atspindintį enum parinkčių pavadinimus:

kiekvienam (styga vardas in Enum. GetNames (tipas(savaitės diena)))
{
tarpt indeksas = (tarpt)(Savaitės diena) Enum. Parse(tipas(savaitės diena), vardas);

Konsolė. WriteLine (rodyklė); // Norėdami spausdinti rodyklę
Konsolė. WriteLine (vardas); // Norėdami spausdinti teksto reikšmę
}

Enums naudojimas C#

Savo kode galite naudoti eilutes, kad jis būtų lengviau skaitomas ir būtų mažiau linkęs į klaidas. Enumai taip pat gali būti labai naudingi, kai jie suporuojami su kitomis struktūromis, pavyzdžiui, žodynais.