Jack-Leung

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

 1、如何把其它类型转换为枚举类型?

   2、如何把枚举中的值添加到下拉菜单中?

  

一、如何把其它类型转换为枚举类型?

       我们回顾一下有关字符串与数字之间的转换,如:

       string strValue="12";

       int value=int.Parse(strValue);    //使用int.Parse()就可以把字符串转换为整数

    

      那把字符串转换成枚举类型相对于要复一些,语法如下:

      Enum.Parse(枚举的类型,要转换的值);

      实际应用:

      现在有一个枚举

 现有一个字符串:string strValue="QQ2001";

使用枚举转换语句:Enum.Parse(枚举的类型,要转换的值);

  Enum.Parse(typeof(QQSkipEnum) , strValue);

  以上的结果是一个object类型,所以还需要强转一下,

  使用该枚举来接收,如下:

QQSkipEnum  qprase=

(QQSkipEnum)Enum.Parse(typeof(QQSkipEnum) , strValue);

这样就把字符串转换成枚举类型成功,以上的代码相对于复杂一点,

但在实际的开发过程当中,是必不可少的,所以务必要记住

 

 注意:在把字符串转换为枚举过程中,该字符串必须在枚举中是存在此值的,如果该值不存在,

         系统就会提示错误

 如:

string strValue="qq2001";       

转换的时候:

QQSkipEnum  qprase=

(QQSkipEnum)Enum.Parse(typeof(QQSkipEnum) , strValue);

这样是不行的,因为在枚举中没有 "qq2001"的定义,只有大写的“QQ2001”

二、如何把枚举中的值添加到下拉菜单中

    因为枚举是一组固定的常量,所以可以使用枚举中的自带方法,把这些常量转换为字符串数组,

  然后再添加到下拉菜单中。

   语法如下:

   string[]   qqSkip= Enum.GetNames(枚举类型);    //该方法返回的是字符串数组

  以下是效果图:

   

 

  如果还不太明白,可以去MSDN:

  http://msdn.microsoft.com/zh-cn/library/sbbt4032(VS.80).aspx

 

  以下是Enum成员,请大家了解一下:

  http://msdn.microsoft.com/zh-cn/library/system.enum_members(VS.80).aspx

 

  总结:枚举在我们实际项目开发中,非常的重要,枚举转换和如何得到枚举的值,

          这些方法大家必须要记下来,学程序的最好的方法就是,练,练,练,再练。

           祝大家学习快乐!

posted on 2011-07-01 10:01  Jack.leung  阅读(323)  评论(0编辑  收藏  举报