什么是优先的命令行程序退出方式?

15
这很简单。我只需要退出我的命令行C#程序 - 没有花哨的东西。
我应该使用什么?
Environment.Exit();
或者
this.Close();
或者其他什么?

2
在控制台应用程序中,this.Close甚至都不起作用。 - Adam Lear
2个回答

18

刚从Main方法返回。

编辑:

如果你真的在应用程序中失去了流程并想要退出(例如,在由Main调用的任何方法内部),可以使用以下方法:

Environment.Exit(0);

要记住,通常情况下应该返回0给调用进程(操作系统),表示一切顺利完成,并且如果发生错误并且执行未像本应如此顺利,则返回非零值。


我想从Main方法外部调用exit。 - toop
1
你现在是在被 main 函数调用的方法里吗?你不能返回到 main 函数,让 main 函数也返回吗? - Davide Piras
很好的答案,但稍晚于其他答案 - 我也使用了return。 - toop

11
在你的Main方法中使用return;语句。
如果你不在Main方法中却要退出程序,你需要从当前Main方法执行的方法中返回。
示例:
void Main(...)
{
    DisplayAvailableCommands();
    ProcessCommands();
}

void ProcessCommands()
{
    while(true)
    {
        var command = ReadCommandFromConsole();
        switch(command)
        {
            case "help":
                DisplayHelp();
                break;
            case "exit":
                return;
        }
    }
}

这并不是一个好的控制台应用程序整体设计的例子,但它能够说明问题。


我想从Main方法外部调用exit。 - toop
接受回答者的建议,我最终使用了return。 - toop

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接