重新启动控制台应用程序

本文关键字:应用程序 控制台 重新启动 | 更新日期: 2023-09-27 18:06:57

我创建了一个小型应用程序,用于进行小型转换。在程序的最后,我创建了一个方法,允许用户在按下'r'时进行另一次计算。我想让它做的就是,如果它们按r,把它们带回到Main的开始,否则终止程序。我不想用goto。这是我目前得到的,以及我得到的错误。

http://puu.sh/juBWP/c7c3f7be61.png

重新启动控制台应用程序

我建议您使用另一个函数来代替Main()。请参考以下代码:

    static void Main(string[] args)
    {
        doSomething();
    }
    public static void WouldYouLikeToRestart()
    {
        Console.WriteLine("Press r to restart");
        ConsoleKeyInfo input = Console.ReadKey();
        Console.WriteLine();
        if (input.KeyChar == 'r')
        {
            doSomething();
        }
    }
    public static void doSomething()
    {
        Console.WriteLine("Do Something");
        WouldYouLikeToRestart();
    }

while循环将是一个很好的选择,但是既然您说程序应该运行,然后给用户提供再次运行的选项,那么一个更好的循环将是Do while。while和Do while的区别在于Do while总是至少运行一次。

        string inputStr;
        do
        {
            RunProgram();
            Console.WriteLine("Run again?");
            inputStr = Console.ReadLine();
        } while (inputStr == "y");
        TerminateProgram();

在您的情况下,您想要重复某些内容,因此当然应该使用while循环。使用while循环像这样包装所有代码:

while (true) {
    //all your code in the main method.
}

然后提示用户在循环末尾输入'r':

if (Console.ReadLine () != "r") {//this is just an example, you can use whatever method to get the input
    break;
}

如果用户输入r,则循环继续工作。break表示停止执行循环中的内容