📜  字符串到枚举 c# (1)

📅  最后修改于: 2023-12-03 15:25:03.058000             🧑  作者: Mango

字符串到枚举 c#

在 C# 开发中,枚举是一种常见的数据类型,它定义了一组命名的常量。枚举可以作为整数类型使用,可以被用于 switch 语句、比较运算符等。

有时候,我们需要将一个字符串转换为枚举类型,或者将枚举值转换为字符串。这篇文章将介绍如何在 c# 中进行字符串到枚举、枚举到字符串的转换。

字符串到枚举

在将字符串转换为枚举类型之前,需要了解一些 C# 中关于枚举的规则:

  1. 枚举值必须在枚举类型定义的范围内。
  2. 枚举值必须是常量表达式(不需要在运行时才能计算出来)。
  3. 枚举值可以是整数、浮点数、字符或字符串(但是只有整数类型是默认的类型)。

接下来,我们将介绍两种将字符串转换为枚举类型的方法。

方法一:使用 Enum.Parse

Enum.Parse 是一个用于将字符串转换为枚举类型的方法。它的语法如下:

public static object Parse (Type enumType, string value);

其中,enumType 是一个表示枚举类型的 Type 对象,value 是需要转换的字符串。

我们可以通过以下示例代码演示如何将字符串转换为枚举类型:

enum Gender { Male, Female }

string str = "Female";
Gender gender = (Gender)Enum.Parse(typeof(Gender), str);
Console.WriteLine(gender); // 输出 Female

代码中,我们定义了一个 Gender 枚举类型,并将字符串 "Female" 转换为 Gender 类型。

方法二:使用 Enum.TryParse

Enum.TryParse 是另一种将字符串转换为枚举类型的方法。它的语法如下:

public static bool TryParse (Type enumType, string value, out object result);

其中,enumType 是一个表示枚举类型的 Type 对象,value 是需要转换的字符串,result 是转换后的结果。

Enum.Parse 不同的是,Enum.TryParse 返回一个布尔值,表示转换是否成功。如果转换成功,result 参数将包含转换后的枚举值。

以下是使用 Enum.TryParse 进行字符串转换的示例代码:

enum Gender { Male, Female }

string str = "Female";
Gender gender;
bool success = Enum.TryParse(str, out gender);
if (success)
{
    Console.WriteLine(gender); // 输出 Female
}
else
{
    Console.WriteLine("转换失败");
}

代码中,我们同样定义了一个 Gender 枚举类型,并将字符串 "Female" 转换为 Gender 类型。如果转换成功,则输出转换后的值;否则输出 "转换失败"。

枚举到字符串

除了将字符串转换为枚举类型,有时候我们也需要将枚举值转换为字符串。在 C# 中,可以使用 Enum.ToString 方法来做到这一点。

Enum.ToString 方法的语法如下:

public override string ToString ();

注意,这里我们使用了 override 关键字。这是因为 ToString 是一个虚方法,在 Enum 类型中被覆盖了。

接下来,我们可以通过以下示例代码演示如何将枚举值转换为字符串:

enum Gender { Male, Female }

Gender gender = Gender.Female;
string str = gender.ToString();
Console.WriteLine(str); // 输出 Female

代码中,我们定义了一个 Gender 枚举类型,并将值设置为 Female。然后我们将枚举值转换为字符串,并输出结果。

总结

在本文中,我们介绍了如何在 C# 中进行字符串到枚举、枚举到字符串的转换。

要将字符串转换为枚举类型,可以使用 Enum.ParseEnum.TryParse 方法。要将枚举值转换为字符串,可以使用 Enum.ToString 方法。这些方法都是 C# 中常用的功能,掌握它们可以帮助我们处理许多实际问题。