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 ...
随机推荐
- re 模块 正则表达式
re模块(正则表达式) 一.什么是正则表达式 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物的规则.(在Python中)它 ...
- Asp.net Mvc 与 Web Api生命周期对比
完整的生命周期比较复杂,对细节感兴趣的同学可购买老A的图书学习:传送门 本文只简单讲述路由注册.controller创建.action选择的3个主逻辑线,其他的内容大家可自己阅读相应的代码 先上二者单 ...
- 【JavaScript_DOM 百度搜索框】
今天给大家带来的事一个简单的百度的历史搜索框,大家在搜索东西的时候,百度会自动给你显示你最近搜索过的一些东西,那这个拿js怎么做呢? 我们一起来学习吧 这是一个HTML页面: <!DOCTYPE ...
- HDU 1847 Good Luck in CET-4 Everybody!(规律,博弈)
Good Luck in CET-4 Everybody! Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ...
- HDU_4883
TIANKENG's restaurant Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/O ...
- Java技术分享:如何编写servlet程序
身为计算机专业的我,从接触java至今,已经有七年之久,从最开始的小白到现在的大白,这是一个漫长而曲折的历程. 大学刚接触Java这个学科时,一点儿都不理解java是要干嘛的,只知道学起来肯定不容易, ...
- 将DedeCMS从子目录移动到根目录的方法
http://www.commonie.com/a/chat/dedeskill/298.html 以前做了一个Wordpress的博客,后来觉得采用DedeCMS更好一点,所以就有了转向DedeCM ...
- dedecms_
2012-7-5(no1)当我们点击检索结果的某个电影超链接时,如何跳转到对应的内容页[本资源由www.qinglongweb.com搜集整理] dedelist标签 --可以嵌套 项目移植: mys ...
- HTML面试
------------------------------------------------------- 行列 td tr ol -------------------------------- ...
- 谈谈Python、Java与AI
Python好像天生是为AI而生的,随着AI的火热,特别是用Python写的TensorFlow越来越火,Python的热度越来越高,就像当年Java就是随着互联网火起来的感觉.在我的工作中,Pyth ...