Introduktion til Enum i C #
Enum er et reserveret nøgleord i C #, der repræsenterer en optælling. Enumeration er en brugerdefineret type i C #, der indeholder et sæt af navngivne konstanter. Hver konstant i sættet har en værdi (som standard heltal). Konstanterne kan fås via både navne og værdier. Navnene kan således ikke duplikeres i enum.
Syntaks for enum er ligetil. Det starter med nøgleordet enum, efterfulgt af et variabelt navn, efterfulgt af et sæt navngivne konstanter indpakket i krøllede parenteser. Selvfølgelig ender det med en semi-colon.
Syntaks:
enum ();
Eksempel:
enum Day ( Sun, Mon, Tue, Wed, Thu, Fri, Sat );
enum Month ( Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec );
Arbejde med Enum i C #
Lad os prøve at forstå, hvordan enum fungerer i C #. Enums har en underliggende type i C #. Dette betyder, at hver konstant i enum vil have en værdi af den underliggende type, der er tildelt den. Den underliggende standardtype af enum i C # er et heltal.
I ovennævnte dag, har vi syv konstanter erklæret. Det har en standard underliggende type heltal. Således vil hver konstant have en heltalværdi tildelt den. Som standard starter værdien ved 0. Således vil Sun få 0 tildelt den, Man vil have 1 tildelt den, Tue vil have 2 tildelt den og så videre.
Lad os tage et andet eksempel. Vi tildeler værdien 1 til Sun. Dette ville tvinge kompilatoren til at starte tildelingen fra 1 i stedet for 0. Derefter tildeler vi værdien 8 til torsdag. Kompilatoren fortsætter derefter tildelingen fra 8 og frem.
Eksempel 1
using System;
public class Program
(
enum Day
(
Sun = 1,
Mon,
Tue,
Wed,
Thu = 8,
Fri,
Sat
);
public static void Main()
(
for (int i = 0; i < 10; i++)
(
Console.WriteLine((Day)i);
)
)
)
Produktion:
Et ægte eksempel kan være de forskellige faser i en klients rejse. Naturligvis kan alle konstanterne deklareres separat og tildeles tilsvarende heltalværdier til det, men ved hjælp af enum fjernes besværet med at huske heltalværdierne for hvert trin og gør også koden meget lettere at forstå.
Eksempel 2
using System;
public class Program
(
enum ClientJourney
(
Introduced = 1,
UnderReview = 2,
Reviewed = 3,
Documentation = 4,
Onboarded = 5,
Declined = 6,
Deboarded = 7
);
public static void Main()
(
Console.WriteLine("The various stages in the journey of a client are:\n");
foreach (string str in Enum.GetNames(typeof(ClientJourney)))
(
Console.WriteLine(str);
)
)
)
Produktion:
Enummetoder i C #
Følgende er nogle metoder til Enum i C #:
1. GetName (Type, Int32)
GetName-metoden returnerer den navngivne konstante, der er kortlagt til den specificerede værdi i enum. Hvis der ikke er nogen navngivet konstant til den værdi, returnerer den en tom streng.
Denne metode forventer to parametre - den ene er typen dvs. selve enum, og den anden er den specificerede værdi.
Kode:
I det samme eksempel på dage ovenfor vil vi udskrive de navngivne konstanter gennem metoden GetName.
using System;
public class Program
(
enum Day
(
Sun = 1,
Mon,
Tue,
Wed,
Thu = 8,
Fri,
Sat
)
;
public static void Main()
(
for (int i = 0; i < 10; i++)
(
Console.WriteLine(Enum.GetName(typeof(Day), i));
)
)
)
Produktion:
2. GetNames (Type)
Bemærk i ovenstående eksempel, hvordan vi var nødt til at bruge for-loop for at få alle de navngivne konstanter i enum. GetName-metoden er mere nyttig, når vi har brug for et enkelt eller måske et begrænset antal navngivne konstanter.
For at få alle de nævnte konstanter, har vi en anden metode GetNames (). Det tager enum som inputparameter.
Kode:
I det samme eksempel på dage ovenfor vil vi udskrive de navngivne konstanter gennem metoden GetNames.
using System;
public class Program
(
enum Day
(
Sun = 1,
Mon,
Tue,
Wed,
Thu = 8,
Fri,
Sat
)
;
public static void Main()
(
foreach(string namedConstant in Enum.GetNames(typeof(Day)))(
Console.WriteLine(namedConstant);
)
)
)
Produktion:
3. GetValues (Type)
Metoden GetValues () bruges til at få de underliggende kortlagte værdier til hver af enums navngivne konstanter.
Kode:
I det samme eksempel på dage ovenfor vil vi udskrive de navngivne konstanter gennem metoden GetNames.
using System;
public class Program
(
enum Day
(
Sun = 1,
Mon,
Tue,
Wed,
Thu = 8,
Fri,
Sat
)
;
public static void Main()
(
foreach (int i in Enum.GetValues(typeof(Day)))
(
Console.WriteLine(i);
)
)
)
Produktion:
Regler for Enum i C #
- Enum er en type, ikke en variabel / konstant / metode.
- Enum-navngivne konstanter kan ikke duplikeres. De skal være unikke
- Den underliggende type enum kan ikke være char.
- Den underliggende standardtype af enum er et heltal.
- Som standard starter de værdier, der er tildelt enum navngivne konstanter fra 0, stigende med 1 for hver på hinanden følgende navngivne konstant.
Fordele ved Enum i C #
Enums er en meget fordelagtig kodningspraksis. De bruges til at definere sæt konstanter til applikationen eller programmet. Sættet forbliver således konstant og undgår kaos i programmet, især når det er en enorm applikation, der involverer flere udviklere.
Der er mange scenarier, hvor enums kan bruges. Ugedage, måneder af året, konverteringsforhold for temperaturer, konverteringsfaktorer for tidszoner eller eventuelle mastertabeldata til applikationen. Dette gør koden mere læsbar og lettere at forstå.
Konklusion
Vi har således set brugen af enum i C #. Vi har lært, hvordan det fungerer, og hvad der kan bruges praktisk. Vi forstod reglerne, der skal overholdes, når vi bruger enums. Der er også metoder, der hjælper os med at få adgang til og formatere enum. Det anbefales at bruge enums i din kode så meget som muligt. Dette vil hjælpe dig med at observere kodning af god praksis og også lære enums.
Anbefalede artikler
Dette er en guide til Enum i C #. Her diskuterer vi arbejdet, metoder, regler og fordele ved Enum i C # med eksempler og kodeimplementering. Du kan også se på de følgende artikler for at lære mere -
- Palindrome i C # med eksempler
- Sådan får du adgang til navneområder i C #?
- Top 3 typer mønstre i C #
- Rekursiv funktion i C #
- Fortsæt udsagnsarbejdet i C # med eksempler
- Faktorer i R | Sådan oprettes | Fordele