Heim > Backend-Entwicklung > C++ > Wie kann man Strings effizient in C#in Enums konvertieren?

Wie kann man Strings effizient in C#in Enums konvertieren?

Patricia Arquette
Freigeben: 2025-02-02 00:36:17
Original
534 Leute haben es durchsucht

How to Efficiently Convert Strings to Enums in C#?

Die beste Praxis der Zeichenfolge zur Aufzählungsumwandlung in der Aufzählung

In der C# -Entwicklung ist die Konvertierung von String in den Aufzählungswert eine gemeinsame Aufgabe. In diesem Artikel wird der effektivste Weg untersucht, um diese Konvertierung zu erreichen.

Found TryParse -Methode

Ausgehend von .NET Core und .NET Framework ≥4.0 können Sie die genealistische Methode verwenden, um die Aufzählung aufzulösen:

Diese Methode versucht nicht nur, die Zeichenfolge als Aufzählungswert zu beheben, sondern umzuwandeln sie auch in einen expliziten Aufzählungstyp und weist ihn der Mystatus -Variablen zu.

<code class="language-csharp">Enum.TryParse("Active", out StatusEnum myStatus);</code>
Nach dem Login kopieren
ParseeeXtsion/tenumextexsion Expansionsmethode

Für die ältere Version des .NET -Frameworks kann die benutzerdefinierte Erweiterungsmethode den Analyseprozess vereinfachen:

wie man verwendet:

oder Sie können die ZENUM -Erweiterungsmethode verwenden:
<code class="language-csharp">public static T ParseEnum<T>(string value)
{
    return (T)Enum.Parse(typeof(T), value, true);
}</code>
Nach dem Login kopieren

Verarbeitung des Standardwerts
<code class="language-csharp">StatusEnum MyStatus = EnumUtil.ParseEnum<StatusEnum>("Active");</code>
Nach dem Login kopieren

Um den Standard -Aufzählungswert bei Ausfall der Konvertierung anzugeben, können Sie die Erweiterungsmethode mit dem Standardparameter verwenden:
<code class="language-csharp">public static T ToEnum<T>(this string value)
{
    return (T)Enum.Parse(typeof(T), value, true);
}

StatusEnum MyStatus = "Active".ToEnum<StatusEnum>();</code>
Nach dem Login kopieren

wie man verwendet:

Vorsichtsmaßnahmen

<code class="language-csharp">public static T ToEnum<T>(this string value, T defaultValue)
{
    if (string.IsNullOrEmpty(value))
    {
        return defaultValue;
    }

    T result;
    return Enum.TryParse<T>(value, true, out result) ? result : defaultValue;
}</code>
Nach dem Login kopieren
Obwohl die Ausdehnung der String -Klauselklasse wie Zenum bequem aussieht, ist es wichtig, die Integrität der Kernkategorie aufrechtzuerhalten und unnötige Möglichkeiten zu vermeiden, andere Erweiterungen oder Konflikte mit kontextbezogenen Nachfrage zu verwenden. Daher wird empfohlen, eine dedizierte Klasse oder einen Namensraum für die benutzerdefinierte Enum Conversion -Methode zu erstellen.

Das obige ist der detaillierte Inhalt vonWie kann man Strings effizient in C#in Enums konvertieren?. 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