C#重新启动控制台应用程序

C#重新启动控制台应用程序,c#,C#,我已经创建了一个小应用程序,可以进行小的转换。在程序结束时,我创建了一个方法,允许用户在按下“r”键时进行另一次计算。我所要做的就是,如果他们按r键,把他们带回Main的开头,否则终止程序。我不想使用goto。这就是我到目前为止得到的,也是我得到的错误 我建议您使用另一个函数,而不是Main()。请参考以下代码: static void Main(string[] args) { doSomething(); } public static vo

我已经创建了一个小应用程序,可以进行小的转换。在程序结束时,我创建了一个方法,允许用户在按下“r”键时进行另一次计算。我所要做的就是,如果他们按r键,把他们带回Main的开头,否则终止程序。我不想使用goto。这就是我到目前为止得到的,也是我得到的错误


我建议您使用另一个函数,而不是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循环。使用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
意味着停止执行循环中的内容。

while循环非常合适,但是既然你说程序应该运行,然后给用户再次运行的选项,那么更好的循环应该是Do-while。while和Do-while的区别在于Do-while将始终至少运行一次

        string inputStr;

        do
        {
            RunProgram();

            Console.WriteLine("Run again?");
            inputStr = Console.ReadLine();
        } while (inputStr == "y");

        TerminateProgram();

请以文本形式发布代码(格式正确)-随机网站上的图片链接并不受欢迎,而且它可能会消失,使文章对未来的读者完全无用。注意。不会再这样做了,谢谢。是的,这会使它递归,如果程序必须从for循环中重新启动,这是非常疯狂的。