Maison >développement back-end >C++ >Comment convertir efficacement les chaînes en énumations en C #?
Dans le développement C #, la conversion de la chaîne en valeur d'énumération est une tâche courante. Cet article explorera le moyen le plus efficace de réaliser cette conversion.
Found TryParse Method
À partir de .NET Core et .NET Framework ≥4.0, vous pouvez utiliser la méthode généaliste pour résoudre l'énumération:
Cette méthode essaie non seulement de résoudre la chaîne en tant que valeur d'énumération, mais la convertit également en un type d'énumération explicite, et la affecte à la variable MyStatus.
<code class="language-csharp">Enum.TryParse("Active", out StatusEnum myStatus);</code>
Pour l'ancienne version du .NET Framework, la méthode d'extension personnalisée peut simplifier le processus d'analyse:
comment utiliser:ou, vous pouvez utiliser la méthode d'extension de Toenum:
<code class="language-csharp">public static T ParseEnum<T>(string value) { return (T)Enum.Parse(typeof(T), value, true); }</code>
Traitement de la valeur par défaut
<code class="language-csharp">StatusEnum MyStatus = EnumUtil.ParseEnum<StatusEnum>("Active");</code>
Afin de spécifier la valeur d'énumération par défaut lorsque la conversion échoue, vous pouvez utiliser la méthode d'extension avec le paramètre par défaut:
<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>
comment utiliser:
Précautions
<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>Bien que l'expansion de la classe de clause de chaîne comme Toenum semble pratique, il est important de maintenir l'intégrité de la catégorie de base et d'éviter les moyens inutiles d'utiliser d'autres extensions ou dans le conflit de demande contextuel. Par conséquent, il est recommandé de créer un espace de classe ou de nom dédié pour la méthode de conversion de l'énumération personnalisée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!