枚举序列化反序列化
时间: 2023-07-16 10:15:20 浏览: 155
枚举类型是一个有限的取值集合,可以通过序列化和反序列化将其转换为字符串或数字。
序列化:将枚举类型转换为字符串或数字,以便于存储或传输。在C#中,可以使用Enum.ToString()方法将枚举转换为字符串,也可以使用(Enum)枚举值将枚举转换为整数。
反序列化:将字符串或数字转换为枚举类型。在C#中,可以使用Enum.Parse()方法将字符串转换为枚举类型,也可以使用(Enum)整数将整数转换为枚举类型。
以下是一个示例代码:
```csharp
using System;
enum DayOfWeek
{
Sunday,
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday
}
class Program
{
static void Main(string[] args)
{
// 序列化
DayOfWeek day = DayOfWeek.Monday;
string dayStr = day.ToString();
int dayInt = (int)day;
Console.WriteLine($"dayStr: {dayStr}");
Console.WriteLine($"dayInt: {dayInt}");
// 反序列化
string dayStr2 = "Wednesday";
DayOfWeek day2 = (DayOfWeek)Enum.Parse(typeof(DayOfWeek), dayStr2);
int dayInt2 = 5;
DayOfWeek day3 = (DayOfWeek)dayInt2;
Console.WriteLine($"day2: {day2}");
Console.WriteLine($"day3: {day3}");
}
}
```
输出结果:
```
dayStr: Monday
dayInt: 1
day2: Wednesday
day3: Friday
```
在上面的示例中,我们首先将枚举类型`DayOfWeek`的值序列化为字符串和整数,然后将其反序列化为枚举类型的值。注意,反序列化时需要使用`Enum.Parse()`方法将字符串转换为枚举类型,或者使用强制类型转换将整数转换为枚举类型。
阅读全文