我真的是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();
}
}
}
答案 0 :(得分:1)
控制台应用程序到达Main
的结尾时关闭。它在Console.ReadLine
中的onCommandLineReturn();
之后退出。
添加一个名为bool
的{{1}}变量,将其设置为keepLooping
,然后将代码包装在true
语句中。在程序流程中的某处,检查诸如“退出”或“退出”之类的输入,并将while(keepLooping)
变量设置为keepLooping
。
以下是dotnetfiddle中的一个示例:https://dotnetfiddle.net/Jguj5k