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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 追寻Dream 于 2013-9-24 09:35 编辑

            try
            {
                Console.WriteLine("请输入一个数");
                int nmuber=Convert.ToInt32(Console.ReadLine());
                Console.WriteLine(nmuber);

            }
            catch
            {
                string input = Convert.ToString(number);//为什么提示当前上下文不存在number变量;
                Console.WriteLine(input);

            }
  
            Console.ReadKey();



2 个回复

倒序浏览
本帖最后由 张云飞 于 2013-9-24 09:25 编辑

在try{}catch(){}finally{}语句中,变量的作用域仅限于一个方法域,也就是同一个大括号。
这样你在try中定义的number在catch和finally中都是无效的。
因此,必须将公共变量或者引用定义在整个异常处理外边,然后在内部赋值,就OK了。
另:你此处的变量名也定义不一致,前边是“nmuber”,后边是“number”。



回复 使用道具 举报 1 0
张云飞 发表于 2013-9-24 09:21
在try{}catch(){}finally{}语句中,变量的作用于仅限于一个方法域,也就是同一个大括号。
这样你在try中定 ...

谢谢了!刚刚发现了!

            int number = 0; ;
            try
            {
                Console.WriteLine("请输入一个数");
                number = Convert.ToInt32(Console.ReadLine());
                Console.WriteLine(number);
            }
            catch
            {
                string input = Convert.ToString(number);
                Console.WriteLine(input);
            }
            Console.ReadKey();

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