在C#中,枚举数据类型本质上是一系列被命名的整形变量的集合,常见于对状态与类型的标识。而枚举类型变量则是则是依据所创建的枚举数据类型在主函数中声明对应的枚举变量并加以使用。需要注意的是,一个枚举应当被声明在命名空间而非函数中。

其基本语法规则如下:

namespace ns
{
enum E_type//枚举声明
{
    type1,
    type2,
    type3
}
    class program
    {
        static void main(string[] args)
        {
            E_type playertype = E_type.type1;//枚举变量的声明
        }
    }
}

在默认的一个枚举数据类型中,被命名的枚举项会从0开始,依次递增,例如type1的默认值为0,type1的默认值为1......,并且,每一个枚举项允许被用户赋初值,且被赋完初值的枚举项之后的枚举项仍会顺着该枚举项的初值依次递增,即为:

enum E_Type
{
    type1,    //值为0
    type2 = 5,  //值为5
    type3,    //值为6
    type4,    //值为7
    type5 = 100    //值为100
}

枚举类型变量经常与选择语句搭配使用,用于判断状态或类型并执行相应的逻辑,例如:

namespace ns
{
    enum E_PlayerType
    {
        Alive,
        Death,
        Attack,
        Jumping
    }
    class program
    {
        static void main(string[] args)
        {
            E_PlayerType playerType = Alive;

            if(playerType == Alive)
            {
               //执行对应逻辑
            }
            else if(playerType == Death)
            {
                //执行对应逻辑
            }

            //枚举类型变量常与switch语句搭配使用
            swtich(playerType)
            {
                case E_PlayerType.Alive:
                    break;
                case E_PlayerType.Death:
                    break;
                case E_PlayerType.Attack:
                    break;
                case E_PlayerType.Jumping:
                    break;
                default:
                    break;
            }
            
        }
    }    
}

枚举变量作为一种变量类型,其同样可以进行变量的类型的转换,包括两种,

首先是枚举变量与整型变量的相互转化

int i = (int)playerType;//枚举可以通过括号强转整型变量
playerType = 0 //可以通过对枚举变量赋值的方式将整型变量转化为枚举变量

其次是枚举变量与字符串变量的相互转化

string str = playerType.ToString();//通过ToString方式存储用字符串存储枚举项的名称
playerType = (E_PlayerType)Enum.Parse(typeof(E_PlayerType),"Attack");
//将枚举数据类型中存在名称的字符串先通过Parse法转化为通用枚举类型,再括号强转为特定枚举类型

综上,枚举数据类型提供了存储类型与状态的容器,并可以通过利用枚举类型变量来执行不同状态下的代码逻辑。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐