enum string et obtenir l'aiguillon de la valeur quand le besoin
Je ne sais pas comment faire cela
je veux un code comme suit
enum myenum
{
name1 = "abc",
name2 = "xyz"
}
et vérifier
if (myenum.name1 == variable)
comment puis-je faire ces choses?
merci.
- Que voulez-vous atteindre? Ce n'est pas la façon dont les enums sont utilisées. Votre
if
condition de ne pas faire de sens, il serait toujours revenirtrue
si elle a travaillé, parce quename1
a été déclaréeabc
de sa valeur. Un utile état deif (var == myenum.name1)
. - oui comme ça.. désolé
- double possible de Associe dans ce cas des énumérations avec des chaînes de caractères en C#
Vous devez vous connecter pour publier un commentaire.
Malheureusement ce n'est pas possible. Les énumérations ne peut avoir une base de type sous-jacent (
int
,uint
,short
, etc.). Si vous souhaitez associer les valeurs enum avec des données supplémentaires, appliquer des attributs à des valeurs telles que l'DescriptionAttribute
).Selon ici ce que vous faites n'est pas possible. Ce que vous pouvez faire peut-être serait d'avoir une classe statique plein de constantes, peut-être quelque chose comme:
C'était discuessed ici avant, mais ne peut pas le trouver. Version courte: vous ne pouvez pas donner enum membres de la chaîne de valeurs. Vous pouvez utiliser les noms des membres comme les valeurs, mais souvent ce n'est pas ce que vous voulez. Veuillez suivez ce lien pour un guide sur la façon d'utiliser les attributs de l'annotation de la chaîne de valeurs de l'enum membres.
En fonction de ce que vous voulez faire, vous pourriez peut-être obtenir le même effet en utilisant un Dictionnaire au lieu de
enum
s.Nice réponses ici. L'élaboration sur la proposition de réponse est si vous souhaitez plutôt obtenir la valeur d'enum compte tenu de l'enum description. Je n'ai pas testé mais cela peut fonctionner :
Enum :
Utiliser comme suit :
Note inputpieces est purement un tableau de chaîne et newMetadata.BootloadSource est e_BootloadSource.