📅  最后修改于: 2023-12-03 15:25:03.058000             🧑  作者: Mango
在 C# 开发中,枚举是一种常见的数据类型,它定义了一组命名的常量。枚举可以作为整数类型使用,可以被用于 switch 语句、比较运算符等。
有时候,我们需要将一个字符串转换为枚举类型,或者将枚举值转换为字符串。这篇文章将介绍如何在 c# 中进行字符串到枚举、枚举到字符串的转换。
在将字符串转换为枚举类型之前,需要了解一些 C# 中关于枚举的规则:
接下来,我们将介绍两种将字符串转换为枚举类型的方法。
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
是另一种将字符串转换为枚举类型的方法。它的语法如下:
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.Parse
或 Enum.TryParse
方法。要将枚举值转换为字符串,可以使用 Enum.ToString
方法。这些方法都是 C# 中常用的功能,掌握它们可以帮助我们处理许多实际问题。