C#中的枚举类型(enum type)

来源:互联网 发布:下列属于软件特性 编辑:程序博客网 时间:2024/05/17 03:15

C#中的枚举类型(enum type)

枚举类型(enum type)是具有一组命名常量的独特的值类型。在以下示例中:

enum Color{     Red,    Green,    Blue}

  声明一个名为 Color 的枚举类型,该类型具有三个成员:Red、Green 和 Blue。

  枚举具体是怎么声明呢?枚举声明用于声明新的枚举类型。枚举声明以关键字 enum 开始,然后定义该枚举类型的名称、可访问性、基础类型和成员。具体格式:

  修饰词(new、public、protected、internal、private)enum 枚举类型名:整数类型

{     enum-member-declarations,    enum-member-declaration}
1.B,测试源代码返回顶部
  
  枚举类型一般用于列出唯一的元素,如一周的各天、国家/地区名称,等等。下面的示例代码声明并使用一个名为 Color 的枚举类型,该枚举类型有三个常数值 Red、Green 和 Blue。
复制代码
using System;namespace ConsoleApplication1{    enum Color    {         Red,        Green,        Blue    }    class EnumTypeExample    {        static void PrintColor(Color color)        {            switch (color)            {                 case Color.Red:                    Console.WriteLine("Red");                    break;                case Color.Green:                    Console.WriteLine("Green");                    break;                case Color.Blue:                    Console.WriteLine("Blue");                    break;                default:                    Console.WriteLine("Unknown color");                    break;            }        }        static void Main(string[] args)        {            Color c = Color.Red;            PrintColor(c);            PrintColor(Color.Blue);        }    }}
复制代码

//Execation Result

RedBlue请按任意键继续. . .

 1.B.2, 一个枚举的关联值或隐式地、或显示地被赋值。如果枚举成员的声明中具有 constant-expression 初始值设定项,则该常量表达式的值(它隐式转换为枚举的基础类型)就是该枚举成员的关联值。如果枚举成员的声明不具有初始值设定项,则它的关联值按下面规则隐式地设置:

  如果枚举成员是在枚举类型中声明的第一个枚举成员,则它的关联值为零。否则,枚举成员的关联值是通过将前一个枚举成员(按照文本顺序)的关联值加 1 得到的。这样增加后的值必须在该基础类型可表示的值范围内;否则,会出现编译时错误。有关枚举类型成员关联值赋值案例,参考下例:

复制代码
using System;namespace Test{    public enum Day : uint  //如果不设置数据类型,默认为 int    { Mon=1,Tue=2,Wed=3,Thu=4,Fri=5,Sat,Sun}    class EnumType    {        public static void Main(string[] args)        {            Console.WriteLine(ChooseDay(Day.Sun));            Console.WriteLine(ChooseDay(Day.Mon));        }        static string ChooseDay(Day d)        {            string tmp = string.Empty;            switch (d)            {                 case Day.Mon:                    tmp = string.Format("你选择一周中的第{0}天(即周一),工作",(uint)d);                    break;                case Day.Tue:                    tmp = string.Format("你选择一周中的第{0}天(即周二),工作", (uint)d);                    break;                case Day.Wed:                    tmp = string.Format("你选择一周中的第{0}天(即周三),工作", (uint)d);                    break;                case Day.Thu:                    tmp = string.Format("你选择一周中的第{0}天(即周四),工作", (uint)d);                    break;                case Day.Fri:                    tmp = string.Format("你选择一周中的第{0}天(即周五),工作", (uint)d);                    break;                case Day.Sat:                    tmp = string.Format("你选择一周中的第{0}天(即周六),休息", (uint)d);                    break;                case Day.Sun:                    tmp = string.Format("你选择一周中的第{0}天(即周日),休息", (uint)d);                    break;                default:                    tmp = "不合法";                    break;            }            return tmp;        }    }}
复制代码

//Execation Result

你选择一周中的第7天(即周日),休息你选择一周中的第1天(即周一),工作请按任意键继续. . .

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 路由器被黑了打不开网页怎么办 致人轻伤跑了怎么办 轻伤对方要30万怎么办 老公用老婆的钱怎么办 想注册个公司要怎么办 域名续费不知道找谁怎么办 代收快递弄丢了怎么办 货到付款的快递人不在怎么办 快递送货上门人不在怎么办 ems快递签收人不在怎么办 快递被别人取了怎么办 怎么办快递宗和收发点 快递电话写错了怎么办 网上买沙发想退货怎么办 买的电脑想退货怎么办 买了衣服想退货怎么办 天猫买药审核通过后不要了怎么办 京东维修无发票怎么办 京东维修没有发票怎么办 苹果6s外音没了怎么办 苹果6splus开不了机怎么办 顺丰快递寄件填错收件人地址怎么办 收快递电话换了怎么办 顺丰快递没人收怎么办 网购东西没收到怎么办 中通快递没收到怎么办 快递员不给验货怎么办 顺丰验货不要了怎么办 闲鱼买家掉包了怎么办 闲鱼正在退款中怎么办 拒收货物卖家拒绝退款怎么办 货物没问题淘宝卖家拒收怎么办 头发稀少长的慢怎么办 没满16岁怎么办银行卡 网上买东西手机号填错了怎么办 买东西电话号码填错了怎么办 淘宝联盟扣54分怎么办 联盟被扣54分怎么办 ofo押金退了余额怎么办 网购还没收货就已签收怎么办 理财公司倒闭分公司法人怎么办