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());


  • 相关阅读:
    MapReduce之Map Join
    MapReduce之Reduce Join
    MapReduce清洗日志数据统计PV量
    Hadoop MapReduce自定义数据类型
    ES6 对象拓展方法
    ES6箭头函数与this指向
    ES6参数默认值,剩余参数及展开数组
    ES6模板字符串及字符串的扩展方法
    浅谈ES6数组及对象的解构
    ECMAScript概述及浅谈const,let与块级作用域
  • 原文地址:https://www.cnblogs.com/tao-zi/p/3832578.html
Copyright © 2011-2022 走看看