.net Enum.Parse
enum的一些方法
Parse
public static Object Parse(Type enumType, string value);
public static Object Parse (Type enumType, string value, bool ignoreCase);
GetNames
public static string[] GetNames(Type enumType);
GetName
public static string GetName(Type enumType, Object value);
IsDefined
public static bool IsDefined(Type enumType,Object value);
当在将一个值转化枚举的时候,如果遇到这个值并非枚举的一分子的时候,会怎么样呢?
不会抛出任何异常,因此当我们把这样一个值转换成枚举的时候可能会面临很多潜在的问题。不过IsDefined可以为我们解决这个问题,在转换时先用这个方法判断一下将解除我们的安全隐患。既然Parse方法可以接受一个值也可以接受一个 常数名称作为参数,那为什么IsDefined只有值做参数的形式呢?答案是如果传递一个非法的常数名称程序会抛出异常,而不会像上面的例子一样正常运行。