枚举是直接在命名空间、类或结构中使用 enum 关键字定义的。所有常量名都可以在大括号内声明,并用逗号分隔。下面定义了工作日的枚举。

示例:定义一个枚举

enum WeekDays{Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday}

上面,WeekDays枚举在每行中声明成员,每行用逗号分隔。

枚举值

如果未将值分配给枚举成员,则编译器将在默认情况下为每个成员分配整数值(从零开始)。枚举的第一个成员将为0,并且每个连续枚举成员的值将增加1。

示例:默认枚举值

 enum WeekDays{Monday,     // 0Tuesday,    // 1Wednesday,  // 2Thursday,   // 3Friday,     // 4Saturday,   // 5Sunday      // 6}

可以为枚举成员分配不同的值。枚举成员的默认值的更改将自动按顺序向其他成员分配增量值。

示例:为枚举成员分配值

 enum Categories{Electronics,    // 0Food,           // 1Automotive = 6, // 6Arts,           // 7BeautyCare,     // 8Fashion         // 9}

您甚至可以为每个成员分配不同的值。

示例:为枚举成员分配值

 
enum Categories{Electronics = 1,  Food = 5, Automotive = 6, Arts = 10, BeautyCare = 11, Fashion = 15,WomanFashion = 15}

枚举可以是任何数字数据类型,例如 byte,sbyte,short,ushort,int,uint,long 或 ulong。但是,枚举不能为字符串类型。

在 enum 名称后指定类型为:type。下面定义了字节 enum。

示例:字节枚举

 enum Categories: byte{Electronics = 1,  Food = 5, Automotive = 6, Arts = 10, BeautyCare = 11, Fashion = 15}

访问一个枚举

可以使用点语法: enum.member 访问枚举

示例:访问枚举

 enum WeekDays{Monday, Tuesday,Wednesday,Thursday, Friday, Saturday,Sunday }​Console.WriteLine(WeekDays.Monday); // 星期一Console.WriteLine(WeekDays.Tuesday); // 星期二Console.WriteLine(WeekDays.Wednesday); // 星期三Console.WriteLine(WeekDays.Thursday); // 星期四Console.WriteLine(WeekDays.Friday); // 星期五Console.WriteLine(WeekDays.Saturday); // 星期六Console.WriteLine(WeekDays.Sunday); // 星期日

转换枚举

从枚举类型转换为其基础整数类型需要显式强制转换。

示例:枚举转换

 enum WeekDays{Monday, Tuesday,Wednesday,Thursday, Friday, Saturday,Sunday }​Console.WriteLine(WeekDays.Friday); //输出:星期五 int day = (int) WeekDays.Friday; // 枚举到int的转换Console.WriteLine(day); //输出:4 var wd = (WeekDays) 5; // 从int到枚举的转换Console.WriteLine(wd);//输出:星期六

enum是一个抽象类。

C#枚举(Enum)相关推荐

  1. c语言enum能自定义吗,18、C语言 —— 枚举enum

    1.枚举的概念 枚举是C语言的一种构造数据类型.它用于声明一组命名的常数.当一个变量有几个固定的取值时,可以将这个变量定义为枚举类型.比如季节(春天,夏天,秋天,冬天)就可以定义为枚举类型. 2.枚举 ...

  2. 枚举enum与#define 宏的区别?

    枚举enum与#define 宏的区别? 1)#define 宏常量是在预编译阶段进行简单替换.枚举常量则是在编译的时候确定其值. 2)一般在编译器里,可以调试枚举常量,但是不能调试宏常量. 3)枚举 ...

  3. java 枚举 下拉框_枚举enum在velocity模板语言中的应用-下拉菜单

    1. velocity模板vm页面 语言: #if("add" == $flag) #foreach($elem in $languageEnum) $elem.name #end ...

  4. Swift之深入解析枚举enum的底层原理

    一.Swift 枚举 枚举简单的说也是一种数据类型,只不过是这种数据类型只包含自定义的特定数据,它是一组有共同特性的数据的集合. Swift 的枚举类似于 Objective C 和 C 的结构,枚举 ...

  5. protobuf入门教程(五):枚举(enum)、包(package)

    枚举(enum) 消息格式 当需要定义一个消息类型的时候,可能想为一个字段指定某"预定义值序列"中的一个值,这时候可以通过枚举实现. syntax = "proto3&q ...

  6. 用枚举enum实现单例

    [README] 1,effectivejava 讲到使用 枚举类实现单例的例子,非常好用: 2,好处如下: 不用定义私有构造器: 不用定义获取单例的方法,如 getInstance() :通过 枚举 ...

  7. Java、Mysql、MyBatis 中枚举 enum 的使用

    From: https://yulaiz.com/java-mysql-enum/ Java 和 MySql 中都有枚举的概念,合理的使用枚举,可以让代码阅读和数据库数据查询更加直观.高效.那么我们怎 ...

  8. c++ enum 给定类型_C++11作用域内枚举enum

    在C++11之前的枚举(enum),是没有办法两个枚举(enum)内有相同枚举名的.如果还不知道C++中枚举(enum)是什么,可以看这篇:枚举enum 如:苹果和桔子都有大,中,小.写个代码来说明下 ...

  9. TypeScript 枚举(Enum)

    TypeScript 枚举(Enum) 本节介绍枚举类型的定义及其使用,需要定义一组相同主题的常量数据时,应该立即想到枚举类型.在学习过程中,需要注意枚举类型的正向映射和反向映射,可以通过编译后的 J ...

  10. Java枚举(Enum)类型使用的正确姿势

    关于Java Enum的介绍及原理参见 Java枚举(Enum)类型的基本介绍与原理探求 Enum类型的基本使用 定义一个枚举类的主要作用就是在逻辑代码中对某个变量的值进行比较.同样以季节的枚举类Se ...

最新文章

  1. 公司各个阶段 CTO 需要做什么?(上篇)
  2. android Json详解
  3. python flask 方法get_json返回(Ellipsis, Ellipsis)问题解决
  4. 26句话让你的人际关系更上一层楼!
  5. 牛客假日团队赛8:H.Cell Phone Network(最小支配集)
  6. PHP实现文章的删除,php如何实现删除文章
  7. Windows平台真实时毫秒级4K H264/H265直播技术方案探讨
  8. 互联网 性能 开源_开源的互联网25年及未来
  9. SpringBoot:Unable to start LiveReload server(已解决)
  10. python自动化办公要学多久-深圳用python进行办公自动化都需要学习什么知识呢,谁来说下...
  11. 对Excel或者其他office操作推荐使用NPOI
  12. 关于SVN更新时文件加锁的小结
  13. Hadoop——3.x安装部署
  14. go语言 过滤 html,golang 去除html标签-Go语言中文社区
  15. BitMap算法和Java的实现类BigSet
  16. TS - 勉强入个门儿
  17. react全局状态管理_Recoil - Facebook出品的全新React状态管理库
  18. java_vinson_02:jdk下载安装
  19. 计算机控制点火系统检修,《发动机电控技术》教学教案:计算机控制点火系统的组成及工作原理...
  20. 用“约苗“平台,查看疫苗科普,预约疫苗接种!

热门文章

  1. Python-scrapy爬虫
  2. 电阻式触摸屏的基本结构和驱动原理
  3. 苹果唯冠邮件背后的隐情
  4. Cell综述:人类肠道菌群-从关联到调控
  5. VM虚拟机安装CentOS 7详解
  6. unity reflect_Unity Reflect在这里
  7. Django项目实战——10—(修改地址前后端逻辑、删除地址前后端逻辑、设置默认地址、修改密码、虚拟机安装docker/FastDFS、电商-商品知识、首页广告数据库表分析、商品信息数据库表分析)
  8. hexo写博客时怎么插入图片
  9. 随机过程 Class 3 条件期望
  10. CentOS 8系统时间校准