Maison >développement back-end >C++ >Comment représenter au mieux les valeurs de chaîne dans les énumérations?
L'énumération est un outil puissant pour un ensemble de constantes de dénomination. Cependant, lorsque vous devez accéder à la représentation de chaîne de la valeur d'énumération, le comportement par défaut peut être limité.
Solution personnalisée
La solution personnalisée fournie par l'utilisateur implique la création d'un attribut personnalisé nommé "StringValue" et l'ajoute à l'énumération.此属性存储枚举值的字符串表示,可以使用GetStringValue方法检索。虽然此解决方案有效,但它会增加额外的复杂性,并需要额外的代码来维护。
Type Mode d'énumération sûre
更灵活且类型安全的方法是使用类型安全枚举模式。在此模式中,枚举定义为一个密封类,其中静态字段表示枚举值。 Par exemple:
使用此方法,可以通过简单地对枚举实例调用ToString方法来访问枚举值的字符串表示。 De plus, il peut définir la conversion de type explicite et implicite afin qu'il puisse être facilement converti entre la chaîne et la valeur d'énumération.Conclusion
<code class="language-c#">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; } }</code>
类型安全枚举模式提供了一种更灵活且类型安全的方式来表示带有字符串值的枚举。它消除了对自定义属性的需求,并提供了一种一致且直观的方式来访问枚举值的字符串表示。
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!