Maison > développement back-end > C++ > Comment puis-je représenter des codes incompréhensibles en C# avec des structures lisibles de type Enum ?

Comment puis-je représenter des codes incompréhensibles en C# avec des structures lisibles de type Enum ?

Susan Sarandon
Libérer: 2025-01-13 18:28:45
original
421 Les gens l'ont consulté

How Can I Represent Incomprehensible Codes in C# with Readable Enum-Like Structures?

Associez du code difficile à comprendre en C# à l'aide de structures lisibles de type énumération

Une limitation des énumérations C# est que leur type sous-jacent doit être un entier, ce qui peut gêner la création d'énumérations représentant du code difficile à comprendre. Pour résoudre ce problème, plusieurs alternatives peuvent être envisagées.

Une technique consiste à utiliser des propriétés dans les classes. Cette approche fournit une syntaxe plus proche de celle d'une énumération tout en conservant la flexibilité d'utiliser des chaînes comme valeurs. Par exemple, une classe Logger peut définir des propriétés pour représenter les catégories de journalisation :

<code class="language-csharp">public class LogCategory
{
    private LogCategory(string value) { Value = value; }

    public string Value { get; private set; }

    public static LogCategory Trace { get { return new LogCategory("Trace"); } }
    public static LogCategory Debug { get { return new LogCategory("Debug"); } }
    public static LogCategory Info { get { return new LogCategory("Info"); } }
    public static LogCategory Warning { get { return new LogCategory("Warning"); } }
    public static LogCategory Error { get { return new LogCategory("Error"); } }

    public override string ToString() { return Value; }
}</code>
Copier après la connexion

Une autre option consiste à transmettre une valeur de chaîne de type sécurisé en tant que paramètre à la méthode. Cette approche permet la création de méthodes fortement typées qui acceptent des valeurs de chaîne spécifiques. Un exemple d'une telle méthode dans la classe Logger :

<code class="language-csharp">public static void Write(string message, LogCategory logCategory)
{
    var log = new LogEntry { Message = message };
    Logger.Write(log, logCategory.Value);
}</code>
Copier après la connexion

Comment utiliser :

<code class="language-csharp">Logger.Write("这几乎就像一个枚举。", LogCategory.Info);</code>
Copier après la connexion

Les deux techniques offrent une alternative aux énumérations pour représenter du code difficile à comprendre, offrant les avantages de la sécurité et de la lisibilité des types.

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!

source:php.cn
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