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

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

 原文 

概念

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

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

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

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

{     enum-member-declarations,    enum-member-declaration}

 

测试例

  枚举类型一般用于列出唯一的元素,如一周的各天、国家/地区名称,等等。下面的示例代码声明并使用一个名为 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请按任意键继续. . .

 

赋值

 一个枚举的关联值或隐式地、或显示地被赋值。如果枚举成员的声明中具有 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天(即周一),工作请按任意键继续. . .

 

没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的自由、好奇、充满创造力的想法被现实的框架所束缚,让创造力自由成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。
    本文转自wenglabs博客园博客,原文链接:http://www.cnblogs.com/arxive/p/6017196.html
,如需转载请自行联系原作者
你可能感兴趣的文章
安全测试===BurpSuite使用教程-附安装包
查看>>
Chrome不能在网易网盘中上传文件的解决办法
查看>>
Axure实现多用户注册验证
查看>>
uva11292-Dragon of Loowater
查看>>
05-表操作
查看>>
实时通讯系列目录篇之SignalR详解
查看>>
Spring aop练手
查看>>
The Suspects-并查集(4)
查看>>
收藏夹代码
查看>>
string 、stringbuffer 、stringbuilder 的区别
查看>>
k-medoids与k-Means聚类算法的异同
查看>>
Linux下安装SVN服务端
查看>>
Tomcat 部署项目的三种方法
查看>>
删数问题(贪心)
查看>>
蓝桥杯-矩阵翻硬币
查看>>
button设置边宽和圆角
查看>>
Warning:The /usr/local/mysql/data directory is not owned by the 'mysql' or '_mysql'
查看>>
关于并查集问题
查看>>
Implement strStr()
查看>>
hough T
查看>>