Heim > Backend-Entwicklung > C++ > Wie konvertiere ich eine Enum-Beschreibung zurück in ihren Enum-Wert?

Wie konvertiere ich eine Enum-Beschreibung zurück in ihren Enum-Wert?

DDD
Freigeben: 2025-01-21 21:37:10
Original
609 Leute haben es durchsucht

How to Convert an Enum Description Back to its Enum Value?

Von der Enum-Beschreibung zurück in den Enum-Wert konvertieren

In jedem Fall muss der Enumerationswert basierend auf den zugehörigen Beschreibungseigenschaften der Enumeration abgerufen werden. Lassen Sie uns einen allgemeinen Ansatz erkunden, um dies zu erreichen.

Betrachten Sie das folgende Beispiel, in dem wir eine Erweiterungsmethode haben, um die Beschreibungseigenschaft einer Aufzählung abzurufen:

<code>public static string GetDescription(this Enum value)
{
    // 获取Description属性的实现
}</code>
Nach dem Login kopieren

Mit dieser Methode können wir die Beschreibung erhalten, indem wir den folgenden Code aufrufen:

<code>string myAnimal = Animal.GiantPanda.GetDescription(); // "Giant Panda"</code>
Nach dem Login kopieren

Lassen Sie uns nun in den umgekehrten Prozess der Rückkonvertierung eines Beschreibungsattributs in seinen entsprechenden Aufzählungswert eintauchen. Zu diesem Zweck führen wir eine Hilfsmethode ein:

<code>public static T GetValueFromDescription<T>(string description) where T : Enum
{
    // 根据描述检索枚举值的实现
}</code>
Nach dem Login kopieren

Bei dieser Methode iterieren wir über die Felder des Aufzählungstyps und verwenden Reflektion, um ihre Beschreibungsattribute abzurufen:

<code>foreach (var field in typeof(T).GetFields())
{
    // 检查DescriptionAttribute并与提供的描述匹配的逻辑
}</code>
Nach dem Login kopieren

Wir können den Feldnamen als Fallback-Mechanismus verwenden, wenn kein passendes DescriptionAttribute gefunden wird. Schließlich wandeln wir das Ergebnis in den gewünschten Enum-Typ um:

<code>return (T)field.GetValue(null);</code>
Nach dem Login kopieren

Um diese Methode zu verwenden, geben Sie einfach den Aufzählungstyp und die Beschreibungseigenschaften an:

<code>var panda = EnumEx.GetValueFromDescription<Animal>("Giant Panda");</code>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie konvertiere ich eine Enum-Beschreibung zurück in ihren Enum-Wert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage