C#基础(五)--枚举的含义及其应用
本章讲解如下枚举的如下几个知识点:
1、什么是枚举?
2、枚举是值类型还是引用类型?
3、如何定义枚举?
4、枚举的好处?
5、枚举在实际系统开发过程中的用处?
一、什么是枚举
枚举:用来存放一组固定的常量
它是用来解决用户进行多次if /switch重复简单的判断
二、枚举是值类型还是引用类型?
枚举是值类型
三、如何定义枚举?
定义枚举的语法非常简单,如下:
public enum 枚举名
{ } 枚举的定义1,如下:
public enum ColorEnum
{
红色, //注意,系统会默认给它赋值为0
蓝色, //系统赋值为1
黑色, //系统赋值为2
粉红色 //系统赋值为3
} 枚举的定义方式2,如下:
public enum ColorEnum
{
红色=, //用户自己赋值 所以枚举是一组 符号名称/值 配对
蓝色, // 系统赋值为3
黑色=, //用户自己赋值2
粉红色 //系统赋值为3
}
所以可以看出,系统会自己给没有赋值的常量赋值,
但赋值的方式是按照上一个的值+1来进行操作的 、 如下枚举的结果正确的是( )
public enum MyColor
{
红色=,
蓝色=,
黑色=,
白色
}
程序输出: Console.WriteLine( (int)MyColor.白色 ); A、 B、 C、 D、程序编译错误 、 如下枚举的结果正确的是( )
public enum MyColor
{
红色=,
蓝色=,
红色=,
白色
}
程序输出: Console.WriteLine( (int)MyColor.红色 ); A、 B、 C、 D、程序编译错误 提示:枚举中等号左边的值不能重复.
枚举的语法
要记得枚举的关键字是 enum
四、枚举的好处?
1、便于用户回忆以前的资料
2、便于少输入代码,使程序更容易编写和维护。
3、防止用户乱输入
五、枚举在实际系统开发过程中的用处?
我举一个仿QQ换肤的简单方法来做一个试验,代码如下,请分析结果会是什么?
我们来看一看,这样的代码确实有点不能让人接受,原因:
1、结果错误,通过客户端传入一个字符串来进行判断,容易出错
2、使用了多个if.. else if ..else if....语句块,
基本上是在做同一件判断的事情
3、如果这个程序拿给一个新手来做,那这个新员工来进行开发,那这个员工的记忆力要非常的好,
不然一个字符输出就有可能得不到想要的结果.....
那如何解决这种多次使用if/switch等简单语句判断呢?这时候枚举就出马了,代码如下:
在用户调用的时候,系统会有提示,如图:
使用枚举的好处,再次强调:
1、便于用户回忆以前的资料
2、便于少输入代码,使程序更容易编写和维护。
3、防止用户乱输入
那如何把字符串转换为枚举类型?
如何把枚举添加到下拉菜单中?
这两个问题,在下一章将会进行讲解.
C#基础(五)--枚举的含义及其应用的更多相关文章
- { MySQL基础数据类型}一 介绍 二 数值类型 三 日期类型 四 字符串类型 五 枚举类型与集合类型
MySQL基础数据类型 阅读目录 一 介绍 二 数值类型 三 日期类型 四 字符串类型 五 枚举类型与集合类型 一 介绍 存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己 ...
- Bootstrap <基础五>表格
Bootstrap 提供了一个清晰的创建表格的布局.下表列出了 Bootstrap 支持的一些表格元素: 标签 描述 <table> 为表格添加基础样式. <thead> 表格 ...
- 【转】Java基础笔记 – 枚举类型的使用介绍和静态导入--不错
原文网址:http://www.itzhai.com/java-based-notes-introduction-and-use-of-an-enumeration-type-static-impor ...
- 黑马程序员:Java基础总结----枚举
黑马程序员:Java基础总结 枚举 ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 枚举 为什么要有枚举 问题:要定义星期几或性别的变量,该怎么定义?假设用1-7分别 ...
- C#_02.14_基础五_.NET类
C#_02.14_基础五_.NET类 一.类实例: 我们前面说过类是一个模板,我们通过类创建一个又一个的实例,通常情况下类当中的变量是每一个实例都各有一份的,互相不影响,而静态字段是除外的,静态字段是 ...
- Java基础之枚举类型Enum的使用
Java基础之枚举类型Enum的使用 定义 public enum AccruedCleanEnum { SPREAD("1","发票"),OTHER(&quo ...
- day 70 Django基础五之django模型层(二)多表操作
Django基础五之django模型层(二)多表操作 本节目录 一 创建模型 二 添加表记录 三 基于对象的跨表查询 四 基于双下划线的跨表查询 五 聚合查询.分组查询.F查询和Q查询 六 ORM ...
- day 69 Django基础五之django模型层(一)单表操作
Django基础五之django模型层(一)单表操作 本节目录 一 ORM简介 二 单表操作 三 章节作业 四 xxx 一 ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现 ...
- day 57 Django基础五之django模型层之关联管理器
Django基础五之django模型层之关联管理器 class RelatedManager "关联管理器"是在一对多或者多对多的关联上下文中使用的管理器.它存在于下面两种情况 ...
- day 56 Django基础五之django模型层(二)多表操作
Django基础五之django模型层(二)多表操作 本节目录 一 创建模型 二 添加表记录 三 基于对象的跨表查询 四 基于双下划线的跨表查询 五 聚合查询.分组查询.F查询和Q查询 六 ORM ...
随机推荐
- JS高级代码
JS 的defineProperties 设置多个属性 var book = {}; //用Object.defineProperties()方法设置多个属性 Object.definePropert ...
- Nginx+Tomcat实现负载均衡小demo
一.搭建Tomcat服务 下载安装JDK和Tomcat就不说了,太简单了.由于是win7单机环境测试,启动多个Tomcat服务可以通过在server.xml配置文件中修改端口实现.准备两个Tomcat ...
- CTF---Web入门第九题 FALSE
FALSE分值:10 来源: iFurySt 难度:易 参与人数:4567人 Get Flag:2144人 答题人数:2157人 解题通过率:99% PHP代码审计 hint:sha1函数你有认真了解 ...
- hdu_1006 Tick and Tick(暴力模拟)
hdu1006 标签(空格分隔): 暴力枚举 好久没有打题了,退队了有好几个月了,从心底不依赖那个人了,原来以为的爱情戏原来都只是我的独角戏.之前的我有时候好希望有个人出现,告诉自己去哪里,做什么,哪 ...
- Xtrabackup实现数据的备份与恢复
Xtrabackup介绍 Xtrabackup是由percona开源的免费数据库热备份软件,它能对InnoDB数据库和XtraDB存储引擎的数据库非阻塞地备份(对于MyISAM的备份同样需要加表锁): ...
- STM32小结
1.GPIO 电灯 推挽输出 PB5 2.GPIO 按键 浮空输入 PA0 3.写IO高电平 HAL_GPIO_WritePin(GPIOB,GPIO_Pin_5,1); 4.读取IO电平 HAL_G ...
- parsing XML document from class path resource [config/applicationContext.xml]; nested exception is java.io.FileNotFoundException: class path resource [config/applicationContext.xml] 解决方案
parsing XML document from class path resource [config/applicationContext.xml]; nested exception is j ...
- MySQL事务隔离级别的实现原理
回顾 在MySQL的众多存储引擎中,只有InnoDB支持事务,所有这里说的事务隔离级别指的是InnoDB下的事务隔离级别. 读未提交:一个事务可以读取到另一个事务未提交的修改.这会带来脏读.幻读.不可 ...
- 邓_PHP面试2
又开始搞php了,好多php知识忘记了,学习php的方法是看面试题 下面是我搜集的一份php的面试题目 1.用PHP打印出前一天的时间格式是2006-5-10 22:21:21(2分) echo da ...
- [拾 得]pipe和xargs的恩怨情仇
Photo by Joshua Sortino on Unsplash 坚持知识分享,该文章由Alopex编著, 转载请注明源地址: http://www.cnblogs.com/alopex/ ...