C# Enum(Enumeration) med eksempel
⚡ Smart oppsummering
Opplistinger i C# definerer et navngitt sett med konstante integralverdier, for eksempel ukedagene, noe som gjør koden enklere å lese og vedlikeholde. Nøkkelordet enum deklarerer disse faste konstantene én gang for gjenbruk på tvers av et program.

C#-oppregning
En oppregning brukes i et hvilket som helst programmeringsspråk for å definere et konstant sett med verdier. For eksempel kan ukedagene defineres som en oppregning og brukes hvor som helst i programmet. I C# er oppregningen definert ved hjelp av søkeordet 'enum'.
La oss se et eksempel på hvordan vi kan bruke søkeordet 'enum'.
I vårt eksempel vil vi definere en opptelling kalt dager, som vil bli brukt til å lagre ukedagene. For hvert eksempel vil vi bare endre hovedfunksjonen i filen Program.cs.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { enum Days{Sun,Mon,tue,Wed,thu,Fri,Sat}; static void Main(string[] args) { Console.Write(Days.Sun); Console.ReadKey(); } } }
Code Forklaring:-
- "enum" data-type er spesifisert for å erklære en oppregning. Navnet på oppregningen er Dager. Alle ukedagene er spesifisert som verdier for opptellingen.
- Til slutt brukes console.write-funksjonen til å vise en av verdiene i oppregningen.
Hvis koden ovenfor er angitt riktig og programmet kjøres vellykket, vil følgende utdata vises.
Utgang:
Fra utgangen kan du se at 'Sol'-verdien for oppregningen vises i konsollen.
Hvorfor bruke enums i C#?
Enumerasjoner gjør et program enklere å lese, tryggere og enklere å vedlikeholde. I stedet for å spre uforklarlige tall, noen ganger kalt magiske tall, utover i koden, gir en enumerasjon hver verdi et beskrivende navn som angir dens hensikt.
- lesbarhet: Et navn som Days.Fri er mye tydeligere enn tallet 5, så alle som leser koden forstår betydningen umiddelbart.
- Type sikkerhet: En variabel deklarert med en enum-type kan bare inneholde ett av de definerte medlemmene, noe som forhindrer at ugyldige verdier forsvinnerping i.
- Vedlikehold: Relaterte konstanter finnes på ett sted, så det å legge til eller gi nytt navn til en verdi oppdaterer hele programmet konsekvent.
- Databinding: Rammeverk som WPF og ASP.NET kan binde en enum til en rullegardinliste, noe som gjør enums nyttige for å bygge brukergrensesnitt.
Fordi kompilatoren sjekker hver tildeling mot de tillatte medlemmene, hjelper enums også med å fange opp feil tidlig, før programmet kjører.
Tilordne egendefinerte verdier til en C#-enum
Som standard tildeler C# det første enum-medlemmet verdien 0 og øker hvert påfølgende medlem med én. I Days-opplistingen ovenfor er Sun lik 0, Mon lik 1 og Sat lik 6. Du kan overstyre disse standardverdiene ved å tildele eksplisitte tall.
- Eksplisitte verdier: Skriving av enumnivå {Lav = 1, Medium = 5, Høy = 10} setter hvert medlem til et valgt tall i stedet for standardsekvensen.
- Delvis oppgave: Hvis du tilordner en verdi til bare noen medlemmer, fortsetter kompilatoren å nummerere fra den sist tildelte verdien for medlemmene som følger.
- Underliggende type: En enum lagrer medlemmene sine som int som standard, men du kan basere den på byte, short eller long for å spare minne eller utvide rekkevidden.
Tilpassede verdier er nyttige når tallene må samsvare med et eksternt system, for eksempel databasekoder eller protokollkonstanter, slik at enumeringen speiler de faktiske dataene nøyaktig.
Slik konverterer du C# Enums til int, string og Flags
C# trenger ofte å flytte en enum-verdi til en annen form, for eksempel å lagre den som et tall eller lese den tilbake fra tekst. Disse konverteringene skjer på noen få standardmåter.
- Enum til int: En eksplisitt konvertering som (int)Days.Wed returnerer det underliggende heltallet, som er nyttig for lagring eller aritmetikk.
- int til oppsummering: Hvis man bruker en variabel i motsatt retning, for eksempel (Days)3, blir et tall gjort om til det samsvarende enum-medlemmet.
- Streng som skal oppsummeres: Enum.Parse og den tryggere Enum.TryParse konverterer et navn som «Fri» til Days.Fri-medlemmet uten å kaste på ugyldig tekst.
- Enumer til streng: Å kalle ToString på et hvilket som helst medlem returnerer navnet, slik at Days.Sun.ToString() produserer «Sun» for visning eller logging.
- Medlemmer på listen: Enum.GetValues og Enum.GetNames returnerer alle verdier eller navn, noe som er nyttig når man fyller ut menyer eller validerer inndata.
Når en enum skal representere en kombinasjon av valg i stedet for ett, bruk Flags-attributtet og gi hvert medlem en potens av to, for eksempel 1, 2, 4 og 8. Du kan deretter kombinere medlemmer med den bitvise ELLER-operatoren og teste for et bestemt alternativ med HasFlag-metoden.
Disse konverteringsteknikkene lar en enum bevege seg rent mellom lesbare navn, lagrede tall og kombinerte flaggsett, keeping Resten av programmet er både skrivesikkert og lett å følge.


