Maison  >  Article  >  développement back-end  >  Exemple de conversion entre enum et string en C#

Exemple de conversion entre enum et string en C#

黄舟
黄舟original
2017-09-05 14:36:001986parcourir

Cet article présente principalement les informations pertinentes sur la conversion mutuelle d'énumération et de chaîne en C#. Les amis qui en ont besoin peuvent se référer à

Opération de conversion C# Json.

Type d'énumération

Enum fournit une classe de base pour l'énumération. Son type de base peut être n'importe quel entier sauf

S'il n'y a pas de If explicite. vous souhaitez déclarer le type de base dans une formule, utilisez Int32.

Remarque : Le type de base du type d'énumération est n'importe quel entier sauf

Char, donc la valeur du type d'énumération est une valeur entière

1. C# convertit l'énumération en chaîne (enume->string)

Notre objet contient le type d'énumération, qui est affiché lorsqu'il est sérialisé en chaîne Json. Parce que c'est l'essence

de l'énumération, mais il est souvent nécessaire d'effectuer certaines opérations lors de la conversion JSON pour afficher les chaînes, car les utilisateurs ont besoin de chaînes.

La méthode est la suivante : ajouter des balises d'attribut sur le type d'énumération


[JsonConverter(typeof(StringEnumConverter))]

Par exemple :

1), avant de définir le énumération Lors de l'énumération d'un type, déclarez simplement un attribut sur le type

Référence Json.net

DLL

sur le projet MODEL puis ajoutez l'attribut [JsonConverter(typeof(StringEnumConverter )) ]

par exemple :


public enum
RecipientStatus
{
Sent,
Delivered,
Signed,
Declined
}
public class
RecipientsInfoDepartResult
{
[JsonConverter(typeof(StringEnumConverter))]
//属性将枚举转换为string
public RecipientStatus status {
set; get; }
public PositionBeanResult PredefineSign {
set; get; }
}

2), en utilisant les méthodes statiques d'Enum GetName et GetNames


eg : public static
string GetName(Type enumType,Object value)
public static string[] GetNames(Type enumType)

Par exemple :


Enum.GetName(typeof(Colors),3))与Enum.GetName(typeof(Colors),
Colors.Blue))的值都是"Blue"
Enum.GetNames(typeof(Colors))将返回枚举字符串数组

3), RecipientStatus ty = RecipientStatus.Delivered;


ty.ToString();

2. Convertissez la chaîne en énumération (string->enum)

1), utilisez la méthode statique d'Enum Parse : Enum.Parse()

Prototype :


public static Object Parse(Type enumType,string value)
eg : (Colors)Enum.Parse(typeof(Colors), "Red");
(T)Enum.Parse(typeof(T),
strType)

Une fonction de modèle prend en charge tout type d'énumération


protected static
T GetType<T>(string strType)
{
T t = (T)Enum.Parse(typeof(T),
strType);
return t;
}

Déterminer si une variable d'énumération est définie Moyen :


RecipientStatus type = 
RecipientStatus.Sent;
Enum.IsDefined(typeof(RecipientStatus),
type );

Résumé

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:
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