>백엔드 개발 >C#.Net 튜토리얼 >C#에서 열거형과 문자열 간의 변환 예

C#에서 열거형과 문자열 간의 변환 예

黄舟
黄舟원래의
2017-09-05 14:36:002068검색

이 글은 C#에서 enum과 string의 상호변환 관련 내용을 주로 소개하고 있으니 필요하신 분들은 참고하시면 됩니다

C# Json 변환 연산

enumeration type

Enum은 열거형 클래스의 기본 유형은

Char를 제외한 모든 정수일 수 있습니다. 기본 유형이 명시적으로 선언되지 않은 경우 Int32가 사용됩니다.

참고: 열거 유형의 기본 유형은

Char를 제외한 모든 정수이므로 열거 유형의 값은 정수 값입니다.

1. C#은 열거를 문자열로 변환합니다(enume-> 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)

를 사용하세요. 예:

rreee

3), RecipientStatus ty = RecipientStatus.Delivered;

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

2, 열거형 문자열(문자열->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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.