ホームページ  >  記事  >  バックエンド開発  >  C# での列挙型と文字列間の変換の例

C# での列挙型と文字列間の変換の例

黄舟
黄舟オリジナル
2017-09-05 14:36:001986ブラウズ

この記事では主にC#でのenumとstringの相互変換に関する関連情報を紹介します

C#のJson変換操作

列挙型

Enumはベースを提供します。列挙型クラスの基本型は

Char を除く任意の整数です。基本型が明示的に宣言されていない場合は、Int32 が使用されます。

注: 列挙型の基本型は

Char を除く任意の整数であるため、列挙型の値は整数値になります

1。C# は列挙型を文字列に変換します (enume->gt; string)

このオブジェクトには列挙型が含まれており、Json 文字列にシリアル化すると、列挙型に対応する数値が表示されます。これは列挙の本質ですが、多くの場合、ユーザーは文字列を必要とするため、文字列を表示するために JSON 変換中にいくつかの操作を実行する必要があります。

方法は: 列挙型に属性タグを追加します

[JsonConverter(typeof(StringEnumConverter))]

例:

1) 列挙型を定義するときは、MODEL プロジェクトの type

Reference Json で属性を宣言するだけです

DLL

次に、属性 [JsonConverter(typeof(StringEnumConverter))] を追加します

例:

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)、Enum の静的メソッド GetName および GetNames を使用します

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

例:

りー
3)、RecipientStatus ty = RecipientStatus.Delivered;

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

2、文字列を列挙する (string->enum)

1)、Enum の静的メソッド Parse を使用します: Enum.Parse( )

Prototype:

ty.ToString();

テンプレート関数はあらゆる列挙型をサポートします

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

列挙型変数が定義に含まれているかどうかを判断します:

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

概要

以上がC# での列挙型と文字列間の変換の例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。