📅  最后修改于: 2023-12-03 15:38:31.196000             🧑  作者: Mango
在C#中,可以通过枚举类型来定义一组常量。常常使用枚举类型来表示一些固定的选项或者状态。在C#中,每个枚举类型都对应一个int类型,可以通过整数值来表示枚举类型的值。但有时候,我们需要从一个字符串值来获取枚举类型的值,这就需要我们把字符串值转换为枚举类型的值。
C#中提供了Enum.Parse()方法,可以将字符串转换为枚举类型的值。Enum.Parse()方法有两个参数:第一个参数是要转换的枚举类型,第二个参数是字符串值。
// 定义一个枚举类型
public enum MyColor
{
Red,
Green,
Blue
}
// 转换字符串值为枚举类型的值
MyColor color = (MyColor)Enum.Parse(typeof(MyColor), "Red");
上面的代码中,我们定义了一个枚举类型MyColor,然后使用Enum.Parse()方法将字符串值"Red"转换为枚举类型的值MyColor.Red。
如果要转换的字符串值不存在于枚举类型中,Enum.Parse()方法将会抛出ArgumentException异常。为了避免这种情况,我们可以使用Enum.TryParse()方法。Enum.TryParse()方法也有两个参数:第一个参数是要转换的枚举类型,第二个参数是字符串值。如果转换成功,方法会返回转换后的枚举类型的值,否则将返回默认值。
// 定义一个枚举类型
public enum MyColor
{
Red,
Green,
Blue
}
// 转换字符串值为枚举类型的值
MyColor color;
Enum.TryParse("Black", out color);
上面的代码中,我们将字符串值"Black"转换为枚举类型的值MyColor.Black。但由于枚举类型中不存在MyColor.Black,所以转换失败,color将会被赋值为默认值MyColor.Red。
在使用Enum.Parse()或Enum.TryParse()方法进行转换时,需要注意以下几点:
在C#中,可以通过Enum.Parse()或Enum.TryParse()方法将字符串值转换为枚举类型的值。在转换时,需要注意大小写问题和是否存在于枚举类型中。