从控制台应用程序退出的正确方法

6 c# console-application

我已经在这里阅读了一些内容,在这里我仍然对是否应该Enviorment.Exit()在控制台应用程序中使用感到困惑。

在一种方法中,如果用户在提示符下键入 exit,我有以下代码,

if(userSelect == "exit")
{
    Environment.Exit(0);
}
Run Code Online (Sandbox Code Playgroud)

更新:

class Program
{
    public static void Main(string[] args)
    {
        Console.WriteLine("Welcome to my Console App");
        Console.WriteLine();
        consoleManager();
    }


    public static void consoleManager()
    {
        string consolePrompt = "ConsoleApp\">";

        string whichMethod = "";
        Console.Write(consolePrompt);
        whichMethod = Console.ReadLine();

        if(whichMethod == "view enties")
        {
            viewEntry();
        }
        else
            if(whichMethod == "Add Entry")
            {
                addEntry();
            }
            else
                if(whichMethod == "exit")
                {
                    //what to do here
                }
                else
                {
                    help();
                }
    }
Run Code Online (Sandbox Code Playgroud)

Car*_*ine 7

浏览 MSDN 文档 - Environment.Exit,它解释了参数

exitCode 参数,使用非零数字来指示错误。在您的应用程序中,您可以在枚举中定义自己的错误代码,并根据情况返回适当的错误代码。例如,返回值 1 表示所需文件不存在,返回值 2 表示文件格式错误。

因此,如果您说 Exit(0),则表示您的进程已成功退出,没有任何错误。如果您使用任何系统错误代码,您将通知操作系统错误时发生了什么。在你的情况下Environment.Exit(0)就足够了。

编辑 我很确定,你想太多了。需要考虑的要点 -

  1. 如果您要退出 Main,则简单的 return 语句就足够了。
  2. 在其他地方使用 Enviorment.Exit(),因为 return 语句会将您返回到 Main 方法,并且程序仍将继续运行。
  3. 我希望你熟悉void Main(string[] args)int Main(string[] args)。区别在于返回值。如果您想返回错误代码,则可以使用它,0 表示成功,其他数字表示各种错误。您可以很好地使用上面链接的系统错误代码。
  4. 它归结为一点 - 控制台程序的调用者是否使用返回值。如果它是您运行的 dos 提示符,它将被忽略。如果某个外部应用程序正在运行您的控制台,它可能会处理您的输出。