Heim >Backend-Entwicklung >C++ >Wie kann man Strings effizient in C#in Enums konvertieren?
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>
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>
Verarbeitung des Standardwerts
<code class="language-csharp">StatusEnum MyStatus = EnumUtil.ParseEnum<StatusEnum>("Active");</code>
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>
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>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!