黑马程序员技术交流社区

标题: C#中关于枚举的一个问题!! [打印本页]

作者: 成都—陈超    时间: 2013-6-14 17:25
标题: C#中关于枚举的一个问题!!
本帖最后由 成都—陈超 于 2013-6-14 20:37 编辑

enum Sex{男,女 }
        static void Main(string[] args)
        {
            bool flag=true;
            Sex sex1;
            Console.WriteLine("请输出你的性别?");
                string s = Console.ReadLine();

代码到这儿,怎么实现把用户输入的字符串转换成枚举类型啊  试了半天都不行
作者: 陈壹    时间: 2013-6-14 17:39
枚举类型的值在初始时就已经决定,不能改变,enum Sex{男,女 }
男/女是sex的值,你想给你的变量 sex1赋值方式是
sex1=Sex.男;或sex1=Sex.女;
作者: 高腾    时间: 2013-6-14 18:01
本帖最后由 高腾 于 2013-6-14 20:03 编辑

字符串类型转换为枚举类型
Sex sex1=(Sex)Enum.Parse(typeof(Sex),input);
先看错问题了 - -

作者: 甘斌斌    时间: 2013-6-14 18:03
(sex)(Enum.Pares(typeof(sex)),s);
能看懂吧?

作者: 蔡志涛    时间: 2013-6-14 18:28
.Net中有把字符串转换成枚举的代码,具体到你的代码上,应该这样写:
         
            Console.WriteLine("请输出你的性别?");
            string input=Console.ReadLine();
              Sex sex1=(Sex)Enum.Parse(typeof(Sex),input);
作者: 成都—陈超    时间: 2013-6-14 19:43
陈壹 发表于 2013-6-14 17:39
枚举类型的值在初始时就已经决定,不能改变,enum Sex{男,女 }
男/女是sex的值,你想给你的变量 sex1赋值方 ...

就是楼下给的这个  (sex)(Enum.Pares(typeof(sex)),s);
通过这个把用户的输入转换成枚举类型的值!!
作者: 成都—陈超    时间: 2013-6-14 19:43
甘斌斌 发表于 2013-6-14 18:03
(sex)(Enum.Pares(typeof(sex)),s);
能看懂吧?

3Q3Q,就是这个  试了下能行
作者: 成都—陈超    时间: 2013-6-14 19:44
蔡志涛 发表于 2013-6-14 18:28
.Net中有把字符串转换成枚举的代码,具体到你的代码上,应该这样写:
         
            Console.Writ ...

嗯嗯   刚吃了饭回来试了下   能行  谢谢谢谢!
作者: 逆_水_寒    时间: 2013-6-14 20:38
enum Sex { 男,女}
    class Program
    {
        
        static void Main(string[] args)
        {

            bool flay = true;
           
            
            Sex sex1;
            Console.WriteLine("请输入你的性别?");
            string s = Console.ReadLine();
            try
            {
                sex1 = (Sex)(Enum.Parse(typeof(Sex), s));
                Console .WriteLine ("你输入的性别为:"+sex1);
            }
           catch
            {
            Console .WriteLine ("你输入的性别有误!");
            
            }

            Console .ReadLine ();



具体我的做法就是这样,你试着做一下看行不行。
开头那个bool类型的代码,你是想做成如果用户输入是“男性”等词语的话就显示“错误,请重新输入!”用的吧。那个只要加个do-while就可以了,你可以试着做做看,不行的话我再给你做。
希望能帮到你。
(注意,枚举是用 "enum" ,转换枚举是用 “Enum"!)




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