zoukankan      html  css  js  c++  java
  • C#基础(五)--枚举的含义及其应用

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

       1、什么是枚举?

       2、枚举是值类型还是引用类型?

       3、如何定义枚举?

       4、枚举的好处?

       5、枚举在实际系统开发过程中的用处?

       一、什么是枚举

               枚举:用来存放一组固定的常量

                      是用来解决用户进行多次if /switch重复简单的判断

      

      二、枚举是值类型还是引用类型?

          枚举是值类型

      三、如何定义枚举?

          定义枚举的语法非常简单,如下:

      

    public enum 枚举名
     {
         
     }
     
     枚举的定义1,如下:
     public enum ColorEnum
     {
         红色,          //注意,系统会默认给它赋值为0
         蓝色,          //系统赋值为1
         黑色,          //系统赋值为2
         粉红色         //系统赋值为3
     }
     
     枚举的定义方式2,如下: 
     public enum ColorEnum
     {
         红色=2,          //用户自己赋值 所以枚举是一组 符号名称/值 配对
         蓝色,            // 系统赋值为3        
         黑色=2,            //用户自己赋值2
         粉红色            //系统赋值为3
     }
      所以可以看出,系统会自己给没有赋值的常量赋值,
                  但赋值的方式是按照上一个的值+1来进行操作的
     
    1、 如下枚举的结果正确的是(  )
      public enum MyColor
      {
          红色=1,
          蓝色=2,
          黑色=1,
          白色
      }
      程序输出: Console.WriteLine(  (int)MyColor.白色   );
     
      A、1      B、2      C、3      D、程序编译错误
     
     
    2、 如下枚举的结果正确的是(  )
      public enum MyColor
      {
          红色=1,
          蓝色=2,
          红色=3,
          白色
      }
      程序输出: Console.WriteLine(  (int)MyColor.红色   );
     
      A、1      B、2      C、3      D、程序编译错误
     
       提示:枚举中等号左边的值不能重复.
    枚举的语法

        要记得枚举的关键字是 enum

      四、枚举的好处?

        1、便于用户回忆以前的资料

        2、便于少输入代码,使程序更容易编写和维护。

        3、防止用户乱输入

     五、枚举在实际系统开发过程中的用处?

        我举一个仿QQ换肤的简单方法来做一个试验,代码如下,请分析结果会是什么?

         

       我们来看一看,这样的代码确实有点不能让人接受,原因:

          1、结果错误,通过客户端传入一个字符串来进行判断,容易出错

          2、使用了多个if.. else if ..else if....语句块,

              基本上是在做同一件判断的事情

          3、如果这个程序拿给一个新手来做,那这个新员工来进行开发,那这个员工的记忆力要非常的好,

             不然一个字符输出就有可能得不到想要的结果.....

       那如何解决这种多次使用if/switch等简单语句判断呢?这时候枚举就出马了,代码如下:

    在用户调用的时候,系统会有提示,如图:

    使用枚举的好处,再次强调:

        1、便于用户回忆以前的资料

        2、便于少输入代码,使程序更容易编写和维护。

        3、防止用户乱输入

    那如何把字符串转换为枚举类型?

    如何把枚举添加到下拉菜单中?

    这两个问题,在下一章将会进行讲解.

  • 相关阅读:
    Java 多线程同步的五种方法
    MySQL中的内连接、左连接、右连接、全连接、交叉连接
    java中线程安全和非线程安全的集合
    hashCode和equal
    MySQL中char、varchar和nvarchar的区别
    MySQL存储引擎
    String在内存中如何存储(Java)
    String、StringBuffer、StringBuilder区别
    MySQL中的事务
    gbk、utf-8、utf8mb4区别
  • 原文地址:https://www.cnblogs.com/gracewolf/p/5319310.html
Copyright © 2011-2022 走看看