本章讲解如下枚举的如下几个知识点:

   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#基础(五)--枚举的含义及其应用的更多相关文章

  1. { MySQL基础数据类型}一 介绍 二 数值类型 三 日期类型 四 字符串类型 五 枚举类型与集合类型

    MySQL基础数据类型 阅读目录 一 介绍 二 数值类型 三 日期类型 四 字符串类型 五 枚举类型与集合类型 一 介绍 存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己 ...

  2. Bootstrap <基础五>表格

    Bootstrap 提供了一个清晰的创建表格的布局.下表列出了 Bootstrap 支持的一些表格元素: 标签 描述 <table> 为表格添加基础样式. <thead> 表格 ...

  3. 【转】Java基础笔记 – 枚举类型的使用介绍和静态导入--不错

    原文网址:http://www.itzhai.com/java-based-notes-introduction-and-use-of-an-enumeration-type-static-impor ...

  4. 黑马程序员:Java基础总结----枚举

    黑马程序员:Java基础总结 枚举   ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! 枚举 为什么要有枚举 问题:要定义星期几或性别的变量,该怎么定义?假设用1-7分别 ...

  5. C#_02.14_基础五_.NET类

    C#_02.14_基础五_.NET类 一.类实例: 我们前面说过类是一个模板,我们通过类创建一个又一个的实例,通常情况下类当中的变量是每一个实例都各有一份的,互相不影响,而静态字段是除外的,静态字段是 ...

  6. Java基础之枚举类型Enum的使用

    Java基础之枚举类型Enum的使用 定义 public enum AccruedCleanEnum { SPREAD("1","发票"),OTHER(&quo ...

  7. day 70 Django基础五之django模型层(二)多表操作

    Django基础五之django模型层(二)多表操作   本节目录 一 创建模型 二 添加表记录 三 基于对象的跨表查询 四 基于双下划线的跨表查询 五 聚合查询.分组查询.F查询和Q查询 六 ORM ...

  8. day 69 Django基础五之django模型层(一)单表操作

    Django基础五之django模型层(一)单表操作   本节目录 一 ORM简介 二 单表操作 三 章节作业 四 xxx 一 ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现 ...

  9. day 57 Django基础五之django模型层之关联管理器

    Django基础五之django模型层之关联管理器   class RelatedManager "关联管理器"是在一对多或者多对多的关联上下文中使用的管理器.它存在于下面两种情况 ...

  10. day 56 Django基础五之django模型层(二)多表操作

    Django基础五之django模型层(二)多表操作   本节目录 一 创建模型 二 添加表记录 三 基于对象的跨表查询 四 基于双下划线的跨表查询 五 聚合查询.分组查询.F查询和Q查询 六 ORM ...

随机推荐

  1. re 模块 正则表达式

    re模块(正则表达式)   一.什么是正则表达式 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物的规则.(在Python中)它 ...

  2. Asp.net Mvc 与 Web Api生命周期对比

    完整的生命周期比较复杂,对细节感兴趣的同学可购买老A的图书学习:传送门 本文只简单讲述路由注册.controller创建.action选择的3个主逻辑线,其他的内容大家可自己阅读相应的代码 先上二者单 ...

  3. 【JavaScript_DOM 百度搜索框】

    今天给大家带来的事一个简单的百度的历史搜索框,大家在搜索东西的时候,百度会自动给你显示你最近搜索过的一些东西,那这个拿js怎么做呢? 我们一起来学习吧 这是一个HTML页面: <!DOCTYPE ...

  4. 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 ...

  5. HDU_4883

    TIANKENG's restaurant Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/O ...

  6. Java技术分享:如何编写servlet程序

    身为计算机专业的我,从接触java至今,已经有七年之久,从最开始的小白到现在的大白,这是一个漫长而曲折的历程. 大学刚接触Java这个学科时,一点儿都不理解java是要干嘛的,只知道学起来肯定不容易, ...

  7. 将DedeCMS从子目录移动到根目录的方法

    http://www.commonie.com/a/chat/dedeskill/298.html 以前做了一个Wordpress的博客,后来觉得采用DedeCMS更好一点,所以就有了转向DedeCM ...

  8. dedecms_

    2012-7-5(no1)当我们点击检索结果的某个电影超链接时,如何跳转到对应的内容页[本资源由www.qinglongweb.com搜集整理] dedelist标签 --可以嵌套 项目移植: mys ...

  9. HTML面试

    ------------------------------------------------------- 行列 td tr ol -------------------------------- ...

  10. 谈谈Python、Java与AI

    Python好像天生是为AI而生的,随着AI的火热,特别是用Python写的TensorFlow越来越火,Python的热度越来越高,就像当年Java就是随着互联网火起来的感觉.在我的工作中,Pyth ...