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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

Tayirjan

初级黑马

  • 黑马币:

  • 帖子:

  • 精华:

© Tayirjan 初级黑马   /  2015-1-22 19:26  /  1066 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

enum Gender
    {
        男=1,
        女=2
    }
static void Main(string[] args)
        {
            //Console.WriteLine(Gender.男);
            Console.Write("请输入你的性别:");
            Gender sex = Gender.男;
            string str = Console.ReadLine();
            try
            {
                sex = (Gender)Enum.Parse(typeof(Gender), str);
                Console.WriteLine("你输入的性别是:{0}", sex);
            }
            catch  (Exception ex)
            {
                Console.WriteLine(ex.Message);
               
            }
           
            Console.ReadKey();
        }
这段程序 输入其他字母都报错,什么输入数字没报错!!

3 个回复

倒序浏览
这段程序 输入其他字母都报错,什么输入数字没报错!!    什么意思?
回复 使用道具 举报
多多米 发表于 2015-1-22 20:17
这段程序 输入其他字母都报错,什么输入数字没报错!!    什么意思?

sex = (Gender)Enum.Parse(typeof(Gender), str);
按道理说如果用户输入的不是"男,女"应该报错,因为Gender里就有"男"和"女"运行时我输入了"男性","女性","..." 都报错了,这是准确的,但是我输入了一些数字,"456","445"还是没有报错,运行结果为:你的性别为:"456"等等!
回复 使用道具 举报
本帖最后由 226362149 于 2015-2-3 21:55 编辑

这个我用IF判断掉了。用户输入的不是数字1、2就报错。因为这里转换本身要求用户输入纯数字的字符串。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马