Knytte enums til strenger i C#

Knytte enums til strenger i C#

Enums i C# brukes til å definere et sett med navngitte konstante verdier som kan tilordnes variabler. De er nyttige for å definere et fast sett med alternativer for en bestemt variabel eller parameter. Når det gjelder å vise enumalternativene til brukeren, er det imidlertid ikke alltid ideelt å bruke enumnavnene direkte. Å knytte enumverdiene til tilsvarende strenger kan gjøre koden mer lesbar og brukervennlig. I denne artikkelen vil vi diskutere hvordan du knytter enums med strenger i C# med et eksempelkode.

Knytte enums til strenger i C#

For å knytte en enum med en streng, kan vi bruke beskrivelsesattributtet. Denne attributtet lar oss knytte en streng til hver verdi av en enum. Her er et eksempel:

offentlig enum enumnavn

[Beskrivelse ("Strengverdi")]
Enumvalue

I denne syntaksen definerer vi først vår enum med navnet "Enumname". Deretter legger vi til beskrivelsesattributtet til hver verdi av enum. Inne i attributtet legger vi til den tilsvarende strengverdien for enumverdien ytterligere nedenfor er en C# -kode som illustrerer tilknytning til enum med strenger:

ved hjelp av system;
Bruke system.Komponentmodell;
Offentlig enumbil

[Beskrivelse ("Beste elbilprodusent")]
BMW,
[Beskrivelse ("Mest pålitelige biler")]
Toyota,
[Beskrivelse ("mest tryggeste biler å kjøre")]
Volvo

Offentlig statisk klasse enumekstensjoner

offentlig statisk streng getDescription (denne enumverdien)

var felt = verdi.GetType ().GetField (verdi.ToString ());
var attributter = (BeskrivelseAttribute []) -felt.GetCustomatTribute (typeof (beskrivelseAttribute), falsk);
Returattributter.Lengde> 0 ? attributter [0].Beskrivelse: Verdi.ToString ();


Public Class Program

Offentlig statisk tomrom Main ()

bil mycar = bil.Volvo;
String MyCarString = Mycar.GetDescription ();
Konsoll.WritLine (MyCarstring);

Han ovenfor kode er et eksempel på hvordan man knytter enums med strenger i C#. Her har vi definert en enum "bil" med tre verdier - BMW, Toyota og Volvo. Hver av disse verdiene er assosiert med en tilsvarende streng ved hjelp av beskrivelsesattributtet.

Vi har også definert en statisk klasse "enumekstensjon" som inneholder en metode "getDescription" for å få den tilsvarende strengverdien til Enum. Metoden fungerer ved først å få feltinfo for enumverdien ved hjelp av refleksjon, og deretter få beskrivelsesattributtet fra den feltinfo. Hvis attributtet eksisterer, returnerer den verdien; Ellers returnerer det bare navnet på enumverdien.

Til slutt, i vår hovedmetode, lager vi en variabel "mycar" av typen bil og tildeler den verdibilen.Volvo. Vi kaller deretter getDescription -metoden på "Mycar" og tildeler resultatet til "MyCarstring". Til slutt trykker vi verdien av “MyCarstring” til konsollen, som gir ut “mest tryggeste biler å kjøre”. Dette demonstrerer hvordan vi enkelt kan knytte enumverdier til strengverdier ved å bruke beskrivelsesattributtet og hente den tilsvarende strengverdien når det er nødvendig.

Konklusjon

Knytte enums til strenger i C# kan gjøre koden vår mer lesbar og brukervennlig, og ved å bruke beskrivelsesattributtet og getDescription-metoden, kan vi enkelt knytte strengverdier til hver enumverdi og hente den tilsvarende strengen når det er nødvendig. Denne teknikken kan være spesielt nyttig i brukergrensesnitt eller når du arbeider med eksterne datakilder som bruker strengverdier i stedet for enumverdier.