黑马程序员技术交流社区

标题: 将用户输入的字符串 转换成枚举类型 [打印本页]

作者: 张雪风    时间: 2012-6-7 18:17
标题: 将用户输入的字符串 转换成枚举类型
今天复习了一下 发现忘记的公式:(自定义枚举)(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);


作者: 王继光    时间: 2012-6-8 23:06
本帖最后由 王继光 于 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 类型
   
作者: 杨海波    时间: 2012-6-8 23:18
Enum的静态方法
valueOf(Class<T> enumType,  String name)
第一个参数指定要将字符串转换成什么枚举类,第二个参数指定要转换的字符串。
如果指定枚举类型不包含指定名称的常量,或者指定类对象不表示枚举类型,会抛异常。

作者: 吴伟烈    时间: 2012-6-19 22:04
将一个字符串装换成枚举类型
(枚举类型名)(Enunm.Parse(typeof(枚举类型名),"字符串"));
String s=Console.ReadLine();
try
{
     sex=(Sex)(Enum.Parse(typeof(Sex),s));
}catch{
     Console.Writeline("输入的不是枚举类型");
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2