Maison > développement back-end > C++ > Comment convertir efficacement les chaînes en énumations en C #?

Comment convertir efficacement les chaînes en énumations en C #?

Patricia Arquette
Libérer: 2025-02-02 00:36:17
original
590 Les gens l'ont consulté

How to Efficiently Convert Strings to Enums in C#?

La meilleure pratique de la chaîne à la conversion d'énumération dans l'énumération

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.

Enum.TryParse("Active", out StatusEnum myStatus);
Copier après la connexion
Méthode d'expansion parseextension / toenumextexsion

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:
public static T ParseEnum<T>(string value)
{
    return (T)Enum.Parse(typeof(T), value, true);
}
Copier après la connexion

<理> Traitement de la valeur par défaut
StatusEnum MyStatus = EnumUtil.ParseEnum<StatusEnum>("Active");
Copier après la connexion

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:
public static T ToEnum<T>(this string value)
{
    return (T)Enum.Parse(typeof(T), value, true);
}

StatusEnum MyStatus = "Active".ToEnum<StatusEnum>();
Copier après la connexion

comment utiliser: <<>

<事> Précautions

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;
}
Copier après la connexion
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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal