Maison > développement back-end > C++ > Comment puis-je obtenir la représentation des cordes d'une enum en C # plus élégamment?

Comment puis-je obtenir la représentation des cordes d'une enum en C # plus élégamment?

Susan Sarandon
Libérer: 2025-01-29 07:57:09
original
317 Les gens l'ont consulté

How Can I Get the String Representation of an Enum in C# More Elegantly?

Obtenez la chaîne de C # élégamment élégamment

Considérons l'énumération suivante:

Pour obtenir des valeurs de chaîne (telles que "formulaires" au lieu de l'ID 1), une solution est requise. Bien que les méthodes basées sur l'attribut existantes et les méthodes de dictionnaire fournissent une solution de transformation, il existe des solutions plus élégantes.
public enum AuthenticationMethod
{
    FORMS = 1,
    WINDOWSAUTHENTICATION = 2,
    SINGLESIGNON = 3
}
Copier après la connexion

<型> Type Mode d'énumération sûre

Le mode de dénombrement sûr de type introduit une classe d'étanchéité, et chaque membre d'énumération est exprimé comme un exemple distinct:

Ce modèle présente les avantages suivants:

public sealed class AuthenticationMethod
{
    private readonly string name;
    private readonly int value;

    public static readonly AuthenticationMethod FORMS = new AuthenticationMethod(1, "FORMS");
    public static readonly AuthenticationMethod WINDOWSAUTHENTICATION = new AuthenticationMethod(2, "WINDOWS");
    public static readonly AuthenticationMethod SINGLESIGNON = new AuthenticationMethod(3, "SSN");

    private AuthenticationMethod(int value, string name)
    {
        this.name = name;
        this.value = value;
    }

    public override string ToString()
    {
        return name;
    }
}
Copier après la connexion

Type Sécurité:

    Classe Assurez-vous que seules des valeurs efficaces sont utilisées.
  • Clear and Concise: La chaîne indique directement à chaque membre. AuthenticationMethod
  • Évolutivité:
  • Peut ajouter de la valeur ajoutée sans détruire le code existant.
  • Conversion de type différent
  • Si nécessaire, vous pouvez ajouter une conversion de type explicite à la classe
  • , permettre à String de convertir une chaîne en énumération (il y a des problèmes dans cette partie de l'exemple de code, vous devez le corriger):

Cela permet une conversion facile, par exemple:

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal