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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 成都—陈超 中级黑马   /  2013-6-14 17:25  /  1656 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 成都—陈超 于 2013-6-14 20:37 编辑

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

代码到这儿,怎么实现把用户输入的字符串转换成枚举类型啊  试了半天都不行

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

8 个回复

正序浏览
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"!)

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
蔡志涛 发表于 2013-6-14 18:28
.Net中有把字符串转换成枚举的代码,具体到你的代码上,应该这样写:
         
            Console.Writ ...

嗯嗯   刚吃了饭回来试了下   能行  谢谢谢谢!
回复 使用道具 举报
甘斌斌 发表于 2013-6-14 18:03
(sex)(Enum.Pares(typeof(sex)),s);
能看懂吧?

3Q3Q,就是这个  试了下能行
回复 使用道具 举报
陈壹 发表于 2013-6-14 17:39
枚举类型的值在初始时就已经决定,不能改变,enum Sex{男,女 }
男/女是sex的值,你想给你的变量 sex1赋值方 ...

就是楼下给的这个  (sex)(Enum.Pares(typeof(sex)),s);
通过这个把用户的输入转换成枚举类型的值!!
回复 使用道具 举报
.Net中有把字符串转换成枚举的代码,具体到你的代码上,应该这样写:
         
            Console.WriteLine("请输出你的性别?");
            string input=Console.ReadLine();
              Sex sex1=(Sex)Enum.Parse(typeof(Sex),input);

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报 1 0
(sex)(Enum.Pares(typeof(sex)),s);
能看懂吧?
回复 使用道具 举报
本帖最后由 高腾 于 2013-6-14 20:03 编辑

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

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
枚举类型的值在初始时就已经决定,不能改变,enum Sex{男,女 }
男/女是sex的值,你想给你的变量 sex1赋值方式是
sex1=Sex.男;或sex1=Sex.女;

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

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