将枚举类型转换为int在C#里非常简单,直接(int)强转就行了,但是这样写代码不方便
使用转换成object与System.Convert.ToInt32();这两种方式都会涉及到装箱拆箱的问题,会产生性能消耗
因为任何对象都用gethashcode的方法,枚举是整数类型,返回的哈希值刚好是整数值:
public static class EnumTools
{
public static int ToInt(Enum e)
{
return e.GetHashCode();
}
public static uint ToUInt(Enum e)
{
return (uint)e.GetHashCode();
}
public static string ValueToString(Enum e)
{
return ToInt(e).ToString();
}
}