关于C#的Enum转换Int类型,不使用强转

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/u014732824/article/details/99303566

将枚举类型转换为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();
    }
}
 

猜你喜欢

转载自blog.csdn.net/u014732824/article/details/99303566