zoukankan      html  css  js  c++  java
  • C#_枚举类型

    

    C#中的枚举是名/值对的数据类型,下面是自定义的军衔等级的枚举

    //定义枚举
                enum MilitaryRank
                {
                    Commander,
                    ArmyCorpCommander,
                    MilitaryDivisionLevelCommander,
                    RegimentalCommand 
    
                }


    MilitaryRank 枚举定义了4个命名常用,这些常量都对应一些离散值,默认情况下第一个元素值为0,其他元素按n+1递推。我们也可以改变默认的初始值,比如下面的

    enum MilitaryRank
                {
                    Commander=10, //赋予默认值
                    ArmyCorpCommander, //自动取得默认值11
                    MilitaryDivisionLevelCommander,//自动取得默认值12
                    RegimentalCommand  //自动取得默认值13
    
                }

    当然枚举不是必须要求赋予初始值和值连续

    控制存储类型

    默认情况下,保存枚举值的是int类型,可以通过形如下的方式来改变枚举存储类型

    enum MilitaryRank:byte

    这样把MilitaryRank的实际存储设置成了byte类型,可以把枚举当作函数的返回值、方法参数、本地变量等

    把枚举当作函数参数

    static void Dispatch(MilitaryRank D)
            {
                switch(D)
                {
                    case MilitaryRank.Commander:
                        Console.WriteLine("派遣司令");
                        break;
                    case MilitaryRank.ArmyCorpCommander:
                        Console.WriteLine("派遣军长");
                        break;
                    case MilitaryRank.MilitaryDivisionLevelCommander:
                        Console.WriteLine("派遣师长");
                        break;
                    case MilitaryRank.RegimentalCommand:
                        Console.WriteLine("派遣团长");
                        break;
                    default: Console.WriteLine("无人派遣");
                        break;
                }
            }

    在为枚举类型赋值的时候,必须以枚举名来设置值,并且枚举类型中没有定义的值是非法的

    System.Enum类型

    所有.Net枚举类型都继承自System.Enum。拥有它的很多有用功能,比如

    返回枚举类型值得数据类型

    Console.WriteLine("保存枚举类型值得数据类型是:{0}", Enum.GetUnderlyingType(Send.GetType()));


    返回当前枚举值得字符串名

    Console.WriteLine("当前枚举值得字符串名{0}", Send.ToString());


  • 相关阅读:
    【PAT甲级】1128 N Queens Puzzle (20分)
    Codeforces Global Round 7D(马拉车/PAM,回文串)
    【PAT甲级】1127 ZigZagging on a Tree (30分)(已知中序后序蛇形输出层次遍历)
    SDOI2012 体育课
    APIO2018 Circle selection 选圆圈
    [科技] 求数列的前k次方和
    APIO2016 Fireworks
    CTSC2018 暴力写挂
    ZJOI2018 胖
    SDOI2017 数字表格
  • 原文地址:https://www.cnblogs.com/tao-zi/p/3832578.html
Copyright © 2011-2022 走看看