博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#中的枚举类型(enum type)
阅读量:5174 次
发布时间:2019-06-13

本文共 3304 字,大约阅读时间需要 11 分钟。

ylbtech- .NET-Basic: C#中的枚举类型(enum type)

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

1.A,相关概念
 
   枚举类型(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天(即周一),工作请按任意键继续. . .
1.C,资源下载

warn 作者:
出处:
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载于:https://www.cnblogs.com/ylbtech/p/3149964.html

你可能感兴趣的文章
idea 配置mybatis Generator 不显示的解决方案 和 配置MBG
查看>>
英语生疏了,每日至少一句吧
查看>>
创建打不开文件夹
查看>>
12 for循环
查看>>
redis(hash篇)
查看>>
Scala实战高手****第12课:Scala函数式编程进阶(匿名函数、高阶函数、函数类型推断、Currying)与Spark源码鉴赏...
查看>>
Hibernate一对多关联
查看>>
python 把函数作为参数 ---高阶函数
查看>>
jQuery + ashx 实现图片按比例预览、异步上传及显示
查看>>
android 代码中使用textAppearance
查看>>
【iOS】UITableViewDelegate 方法没有调用
查看>>
解决code::blocks 17.12不能debug的方法
查看>>
bzoj2961&&bzoj4140 共点圆
查看>>
96:经典实例,判断那一条是闰年:
查看>>
upsource初探
查看>>
让SVN自动更新代码注释中的版本号
查看>>
java中base64
查看>>
常用的mysql操作命令
查看>>
Unity3D的菜单及编辑器扩展
查看>>
我是如何拿到蚂蚁金服 offer 的 ?
查看>>