c# 枚举之间的转换

枚举在C#中都会用到,但是你是否想过,枚举之间怎么转换?这篇文章我就来说一下枚举之间的转换。

C# 是不支持不同枚举之间的转换的,但是 CLR 支持,因此我们可以利用 CLR 赋值的兼容性来实现枚举之间的转换。看一下代码你就明白了:

enum Country1
{
        CN,
        USA,
        UK,
        JP
}

enum Country2
{
        CN,
        USA,
        UK,
        JP
}

class Orogram
{
        static void Main()
        {
                Country1[] c1 = (Country1[])(Array) new Country2[50];
        }
}

上面代码十分简单,主要是利用了 Array 来进行操作的。需要注意的是两个枚举类型不许具有相同的基类型才可以利用这个方法转换。

在实际项目中枚举之间转换几乎没什么用,并且有可能出现意想不到的结果。