黑马程序员技术交流社区

标题: c# 求助 [打印本页]

作者: Tayirjan    时间: 2015-1-22 19:26
标题: c# 求助
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();
        }
这段程序 输入其他字母都报错,什么输入数字没报错!!
作者: 多多米    时间: 2015-1-22 20:17
这段程序 输入其他字母都报错,什么输入数字没报错!!    什么意思?
作者: Tayirjan    时间: 2015-1-23 10:31
多多米 发表于 2015-1-22 20:17
这段程序 输入其他字母都报错,什么输入数字没报错!!    什么意思?

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

这个我用IF判断掉了。用户输入的不是数字1、2就报错。因为这里转换本身要求用户输入纯数字的字符串。




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