Heim > Backend-Entwicklung > C++ > Wie rufe ich Aufzählungswerte aus Beschreibungsattributen in C# ab?

Wie rufe ich Aufzählungswerte aus Beschreibungsattributen in C# ab?

Linda Hamilton
Freigeben: 2025-01-21 21:41:13
Original
543 Leute haben es durchsucht

How to Retrieve Enumeration Values from Description Attributes in C#?

Aufzählungswert basierend auf dem Beschreibungsattribut abrufen

In einigen Programmierszenarien ist es erforderlich, den Aufzählungswert basierend auf dem mit der Aufzählung verknüpften Beschreibungsattribut abzurufen. Dies ist besonders nützlich, wenn Sie mit Aufzählungen arbeiten, die beschreibende Beschriftungen haben.

kann mit der Enum.GetValueFromDescription()-Methode erreicht werden. Diese Methode existiert jedoch nicht im .NET Framework. Wir können eine benutzerdefinierte Erweiterungsmethode implementieren, um diesen Mangel auszugleichen. Der folgende Codeausschnitt demonstriert eine solche Implementierung:

<code class="language-csharp">public static class EnumEx
{
    public static T GetValueFromDescription<T>(string description) where T : Enum
    {
        foreach (var field in typeof(T).GetFields())
        {
            if (Attribute.GetCustomAttribute(field,
            typeof(DescriptionAttribute)) is DescriptionAttribute attribute)
            {
                if (attribute.Description == description)
                    return (T)field.GetValue(null);
            }
            else
            {
                if (field.Name == description)
                    return (T)field.GetValue(null);
            }
        }

        throw new ArgumentException("未找到。", nameof(description));
        // 或者返回 default(T);
    }
}</code>
Nach dem Login kopieren

Anwendung:

<code class="language-csharp">var panda = EnumEx.GetValueFromDescription<animal>("大熊猫");</code>
Nach dem Login kopieren

Durch Aufrufen der Methode GetValueFromDescription können Sie den Enumerationswert abrufen, der der angegebenen Beschreibungseigenschaft entspricht. Diese Methode durchläuft die Felder der Aufzählung, prüft die DescriptionAttribute-Attribute und gibt bei einer Übereinstimmung den entsprechenden Wert zurück. Wenn keine passende Beschreibung gefunden wird, wird je nach Implementierung eine Ausnahme ausgelöst oder der Standardwert des Enum-Typs zurückgegeben.

Das obige ist der detaillierte Inhalt vonWie rufe ich Aufzählungswerte aus Beschreibungsattributen in C# ab?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage