执行“ console.readline();”时如何停止C#控制台程序停止运行两次

时间:2018-09-18 22:08:57

标签: c#

我真的是C#的新手,我一直在研究这个非常简单的命令行样式程序(具有自定义命令等)。现在这些命令很好用,但是每次允许用户返回来输入另一个命令时,或者按回车键时,它都会关闭程序。但是只有第二次我执行命令。我认为这与console.WriteLine();

有关

这是我的代码(我到处都在搜索如何解决此问题,但发现没有任何效果)

using System;

namespace ConsoleProgram
{
class Program
{
    private static string userEnteredCommand;

    static void Main(string[] args)
    {
        Console.Title = "IAO Systems Service Console";
        onCommandLineStart();

        void onCommandLineStart()
        {
            Console.WriteLine("Copyright (C) 2018 IAO Corporation");
            Console.WriteLine("IAO Systems Service Console (type 'sinfo' for more information.");
            userEnteredCommand = Console.ReadLine();
        }

        void onCommandLineReturn()
        {
            userEnteredCommand = Console.ReadLine();
        }


        // Commands

        if (userEnteredCommand == "sinfo")
        {
            Console.WriteLine(" ");
            Console.WriteLine("Program information:");
            Console.WriteLine("Created for IAO Corporation, by Zreddx");
            Console.WriteLine("This program controls doors, gates and e.t.c within IAO Terratory.");
            Console.WriteLine(" ");
            Console.WriteLine("This program is protected by copyright, do not redistribute. ");
        }

        else
        {
            Console.WriteLine("That command does not exist, do 'programs' for a list of actions.");
        }
        onCommandLineReturn();
    }
}

}

1 个答案:

答案 0 :(得分:1)

控制台应用程序到达Main的结尾时关闭。它在Console.ReadLine中的onCommandLineReturn();之后退出。

添加一个名为bool的{​​{1}}变量,将其设置为keepLooping,然后将代码包装在true语句中。在程序流程中的某处,检查诸如“退出”或“退出”之类的输入,并将while(keepLooping)变量设置为keepLooping

以下是dotnetfiddle中的一个示例:https://dotnetfiddle.net/Jguj5k