Enums in C# werden verwendet, um einen Satz benannter konstanter Werte zu definieren, die Variablen zugeordnet werden können. Sie sind nützlich, um einen festen Satz von Optionen für eine bestimmte Variable oder einen bestimmten Parameter zu definieren. Wenn es jedoch darum geht, die Enumoptionen dem Benutzer anzuzeigen, ist es nicht immer ideal, die Enum -Namen direkt zu verwenden. Die Zusammenfassung der Enumwerte mit entsprechenden Zeichenfolgen kann den Code lesbarer und benutzerfreundlicher machen. In diesem Artikel werden wir diskutieren, wie Sie Enums mit Zeichenfolgen in C# mit einem Beispielcode verknüpfen können.
Vernichtung mit Fäden in C# assoziieren
Um eine Enum mit einer Zeichenfolge zu verbinden, können wir das Beschreibungattribut verwenden. Dieses Attribut ermöglicht es uns, eine Zeichenfolge an jeden Wert eines Enum anzuhängen. Hier ist ein Beispiel:
öffentlicher Aufzündung
[Beschreibung ("Stringwert")]
Umzündung
In dieser Syntax definieren wir zuerst unsere Aufzählung mit dem Namen "Enumname". Dann fügen wir das Beschreibungattribut zu jedem Wert des Enum hinzu. Im Inneren des Attributs fügen wir den entsprechenden String -Wert für den unten stehenden Enum -Wert hinzu, der weiter unten ein C# -Code ist, der die Assoziierung von Enum mit Zeichenfolgen veranschaulicht:
mit System verwenden;
Verwenden von System.Componentmodel;
öffentliches Enum Car
[Beschreibung ("Bester Elektroautohersteller")]]]
BMW,
[Beschreibung ("zuverlässigste Autos")]]
Toyota,
[Beschreibung ("sicherste Autos zum Fahren")]]]]]
Volvo
öffentliche statische Klassenverzehrungen
öffentliche statische Zeichenfolge getDescription (dieser Umlaufwert)
var field = Wert.Gettype ().Getfield (Wert.Tostring ());
var Attribute = (BeschreibungAttribute []) Feld.GetCustomattributes (typeof (BeschreibungAttribute), Falsch);
Rückgabeattribute.Länge> 0 ? Attribute [0].Beschreibung: Wert.ToString ();
öffentliches Klassenprogramm
Public static void Main()
Auto mycar = Auto.Volvo;
String mycarstring = mycar.GetDescription ();
Konsole.WriteLine (Mycarstring);
Der obige Code ist ein Beispiel dafür, wie Sie Enums mit Zeichenfolgen in C# verknüpfen können. Hier haben wir ein Enum „Auto“ mit drei Werten definiert - BMW, Toyota und Volvo. Jeder dieser Werte ist einer entsprechenden Zeichenfolge zugeordnet.
Wir haben auch eine statische Klasse „Enumextensions“ definiert, die eine Methode „getDescription“ enthält, um den entsprechenden String -Wert des Enum zu erhalten. Die Methode funktioniert, indem zuerst die Feldinformationen für den Enum -Wert mithilfe von Reflexion und dann das Beschreibungattribut aus diesen Feldinformationen abgerufen werden. Wenn das Attribut existiert, gibt es seinen Wert zurück; Andernfalls gibt es nur den Namen des Enumswerts zurück.
Schließlich erstellen wir in unserer Hauptmethode eine variable „Mycar“ des Typ -Autos und weisen ihm das Wertauto zu.Volvo. Wir nennen dann die GetDescription -Methode auf "Mycar" und weisen das Ergebnis „Mycarstring“ zu, das Ergebnis zuzuweisen. Schließlich drucken wir den Wert von „Mycarstring“ in die Konsole, die „am sichersten Autos zum Fahren“ ausgibt. Dies zeigt, wie wir Enum -Werte problemlos mit den Zeichenfolgenwerten unter Verwendung des Beschreibungattributs assoziieren und den entsprechenden Zeichenfolgenwert bei Bedarf abrufen können.
Abschluss
Die Zusammenarbeit mit Zeichenfolgen in C# kann unseren Code lesbarer und benutzerfreundlicher machen und mithilfe des Beschreibungattributs und der GetDescription-Methode die Zeichenfolgenwerte mit jedem Umlaufwert problemlos assoziieren und die entsprechende Zeichenfolge bei Bedarf abrufen. Diese Technik kann besonders in Benutzeroberflächen oder bei der Arbeit mit externen Datenquellen nützlich sein, die Stringwerte anstelle von Enum -Werten verwenden.