Maison >développement back-end >C++ >Comment puis-je mapper des énumérations C# sur des chaînes ?
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!