其他分享
首页 > 其他分享> > 我不能在Try {}范围中,在主范围中使用分配的变量,但是在catch {}中添加return之后可以吗?

我不能在Try {}范围中,在主范围中使用分配的变量,但是在catch {}中添加return之后可以吗?

作者:互联网

我试图弄清楚为什么这段代码能够使用try作用域中的变量.如果我没有实现return to catch {}会导致错误,但是使用catch in return会毫无问题地运行,我真的不明白为什么,我希望两者都会导致错误.那么为什么它能够运行?

static void Main(string[] args)
    {
        DayOfWeek favDay;
        try
        {
            favDay = (DayOfWeek)Enum.Parse(typeof(DayOfWeek), Console.ReadLine());
        }
        catch(Exception x)
        {
            Console.WriteLine(x.Message);
            Console.ReadLine();
            return; // Without implementing this return I cannot use variable favDay after in Main to pass it into Method.
        }
        Print(favDay);
        Console.ReadLine();
    }

static void Print(DayOfWeek x)
    {
        switch (x)
        {
            case DayOfWeek.Friday:
                Console.WriteLine("Weieeeee");
                break;
            default:
                Console.WriteLine(":(");
                break;
        }
    }

感谢您的答复.

标签:try-catch,c
来源: https://codeday.me/bug/20191111/2020121.html