勤奋菜鸟的天堂

导航

枚举

一、枚举的定义

  public enum 枚举名
   {
     
   }

 
   定义方式1,如下:
   public enum ColorEnum1
   {
       红色,          //注意,系统会默认给它赋值为0
       蓝色,          //系统赋值为1
       黑色,          //系统赋值为2
       粉红色         //系统赋值为3
   }
 
   定义方式2,如下: 
   public enum ColorEnum2
   {
       红色=1,          //用户自己赋值 所以枚举是一组 符号名称/值 配对
       蓝色,            // 系统赋值为2       
       黑色=1,            //用户自己赋值1
       粉红色            //系统赋值为2
   }
  所以可以看出,系统会自己给没有赋值的常量赋值,但赋值的方式是按照上一个的值+1来进行操作的
 
二、枚举的常用操作
  1、枚举转换成字符串
  (ColorEnum)Enum.Parse(typeof(ColorEnum),要转换的值);
  注意:在把字符串转换为枚举过程中,该字符串必须在枚举中是存在此值的,如果该值不存在,系统会提示错误;
  
  2、获取指定值的枚举的常量名称(如ColorEnum,根据1可获得红色)
  string str = Enum.GetName(typeof(ColorEnum2), 1);
 
  3、获取枚举类型的所有常量名称
  因为枚举是一组固定的常量,所以可以使用枚举中的自带方法,把这些常量转换为字符串数组
  //该方法返回的是字符串数组,该数组依次包含了枚举中的所有常量,如红色、蓝色等
  string[] enumArray = Enum.GetNames(typeof(ColorEnum));
  foreach (string str in enumArray)
  {
    //变量str即是枚举常量
  }
  
  4、获取枚举类型所有常量的数值
  注意:接受返回值不能使用字符串数组,要用Array,遍历时的实际类型则是数值自己的类型整型
  Array array = Enum.GetValues(typeof(ColorEnum));
   foreach (int i in array)
  {
    //变量i即是常量对应的数值    
  }
  
二、枚举的好处

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

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

    3、防止用户乱输入

 

posted on 2012-11-29 17:11  勤奋的菜鸟  阅读(1109)  评论(0编辑  收藏  举报