在上下文之外的try中使用int

时间:2014-08-29 20:27:06

标签: c#

Console.Write("Write a number: ");

            try
            {
                int Number = Convert.ToInt32(Console.ReadLine());
            }
            catch ( OverflowException )
            {
                Console.WriteLine("Number to big");
            }

            TellLastNumber(Number);

它说'数字'在当前上下文中不存在。 如何制作int' Number'在main()中到处使用?

2 个答案:

答案 0 :(得分:5)

  

如何在main()中使用int'Number'?

只需将变量Number的声明移到main()的范围内,它就可以从该点到函数末尾。

        Console.Write("Write a number: ");

        int Number = 0;
        try
        {
            Number = Convert.ToInt32(Console.ReadLine());
        }
        catch ( OverflowException )
        {
            Console.WriteLine("Number to big");
        }

        TellLastNumber(Number);

答案 1 :(得分:3)

要消除错误,您必须在try块外部定义Number并为其指定一些默认值。

int Number = 0;
try
{
    int Number = Convert.ToInt32(Console.ReadLine());
}
catch ( OverflowException )
{
    Console.WriteLine("Number to big");
}

TellLastNumber(Number);

更重要的是使用int.TryParse,如果传递给它的数字不是int,则不会引发异常。

int Number;
if (!int.TryParse(Console.ReadLine(), out Number))
{
    Console.WriteLine("Invalid number");   
}
TellLastNumber(Number);

您收到错误,因为编译器无法在Number范围之外看到try