A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张雪风 中级黑马   /  2012-6-7 18:17  /  3067 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

今天复习了一下 发现忘记的公式:(自定义枚举)(Enum.parse(typeof(自枚), 输入的字符串)))  将字符串转换成自己定义的枚举类型

例如:

  enum sex { 男, 女 };//定义枚举类型
   Console.WriteLine("请输入性别(男/女)");
                string sexInput = Console.ReadLine();
                sex nv;
                nv = sex.女;
                nv = (sex)(Enum.Parse(typeof(sex), sexInput));//将字符串转换成枚举类型
                Console.WriteLine(nv);

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

3 个回复

倒序浏览
本帖最后由 王继光 于 2012-6-8 23:07 编辑

我原来是学C语言的, 现在准备报 ,net班, 看了2天视频,也接触 过你说的 把 字符串类型转换为 枚举类型, 死记硬背公式觉得不是很好, 我们仔细分析一下这个 公式
(自定义枚举)  (Enum.parse(typeof(自枚), 输入的字符串))
把它分为2个部分, 首先 前面的 (自定义枚举类型)   我的理解它是一个强制类型转换, 把 我们后面 Enum.parse方法的返回值  强制转换为我们 需要的  自定义枚举类型
  再说后面的 Enum.parse(参数1, 参数2)方法, , 我们先把它简化为包含2个参数, 那么这2个参数都是什么意思呢?  我们说 参数1: typeof(sex),  它指定 参数2将被转换为哪一个 类型的 值,,
typeof 的作用是 返回变量的数据类型 例如:
Enum.parse(typeof(sex), "男"); 那么参数1指定 参数2将被转换为 enum类型,, 因为 typeof(sex)返回的是 enum,,  然后在前面加一个  (sex) (Enum.parse(typeof(sex), "男"))  就把它转换为了 enum sex 类型
   

评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

回复 使用道具 举报
Enum的静态方法
valueOf(Class<T> enumType,  String name)
第一个参数指定要将字符串转换成什么枚举类,第二个参数指定要转换的字符串。
如果指定枚举类型不包含指定名称的常量,或者指定类对象不表示枚举类型,会抛异常。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
将一个字符串装换成枚举类型
(枚举类型名)(Enunm.Parse(typeof(枚举类型名),"字符串"));
String s=Console.ReadLine();
try
{
     sex=(Sex)(Enum.Parse(typeof(Sex),s));
}catch{
     Console.Writeline("输入的不是枚举类型");
}

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马