Maison >développement back-end >C++ >Comment puis-je mapper des énumérations C# sur des chaînes ?

Comment puis-je mapper des énumérations C# sur des chaînes ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-13 18:06:47852parcourir

How Can I Map C# Enums to Strings?

Mappage des énumérations C# en chaînes : solutions de contournement

Les énumérations C# utilisent par nature des types entiers, limitant leur association directe avec des chaînes. Cependant, plusieurs stratégies efficaces permettent de surmonter cette limitation.

Une approche exploite les propriétés de classe. En définissant une classe avec des propriétés de chaîne, nous créons une structure qui imite le comportement d'une énumération :

<code class="language-csharp">public class LogCategory
{
    public string Value { get; private set; }

    public static LogCategory Trace { get; } = new LogCategory("Trace");
    public static LogCategory Info { get; } = new LogCategory("Info");
    // ... other categories
}</code>

Cela permet un accès sécurisé aux représentations sous forme de chaîne :

<code class="language-csharp">public static void WriteLog(string message, LogCategory category)
{
    Logger.Write(message, category.Value);
}

// Usage:
WriteLog("Log message", LogCategory.Info);</code>

Alternativement, les paramètres de chaîne de type sécurisé peuvent être directement utilisés :

<code class="language-csharp">public static void WriteLog(string message, string category)
{
    // Add validation to ensure category is a valid value
    Logger.Write(message, category);
}

// Usage:
WriteLog("Log message", "Info");</code>

Les deux méthodes améliorent la lisibilité et la flexibilité du code, offrant des alternatives pratiques aux limitations des énumérations standard lorsqu'une représentation sous forme de chaîne est nécessaire. Notez que la deuxième approche nécessite une validation minutieuse pour garantir que seules des catégories de chaînes valides sont utilisées.

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:
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