key*_*oss 13 c# console user-input event-handling
我不确定这个问题是否已在其他地方得到解答,我似乎无法通过谷歌找到任何不是"Hello World"示例...我在C#.NET 4.0中进行编码.
我正在尝试开发一个控制台应用程序,它将打开,显示文本,然后等待用户输入命令,其中命令将运行特定的业务逻辑.
例如:如果用户打开应用程序并输入"help",我想显示一些语句等等.我不知道如何为用户输入编写"事件处理程序"代码.
希望这是有道理的.任何帮助将非常感激!干杯.
Tom*_*son 22
您需要几个步骤才能实现这一目标,但不应该那么难.首先,您需要某种解析您所写内容的解析器.要读取每个命令,只需使用var command = Console.ReadLine()
,然后解析该行.并执行命令...主逻辑应该有一个基础看这个(有点):
public static void Main(string[] args)
{
var exit = false;
while(exit == false)
{
Console.WriteLine();
Console.WriteLine("Enter command (help to display help): ");
var command = Parser.Parse(Console.ReadLine());
exit = command.Execute();
}
}
Run Code Online (Sandbox Code Playgroud)
有点,你可能会改变它更复杂.
Parser
和命令的代码很简单:
public interface ICommand
{
bool Execute();
}
public class ExitCommand : ICommand
{
public bool Execute()
{
return true;
}
}
public static Class Parser
{
public static ICommand Parse(string commandString) {
// Parse your string and create Command object
var commandParts = commandString.Split(' ').ToList();
var commandName = commandParts[0];
var args = commandParts.Skip(1).ToList(); // the arguments is after the command
switch(commandName)
{
// Create command based on CommandName (and maybe arguments)
case "exit": return new ExitCommand();
.
.
.
.
}
}
}
Run Code Online (Sandbox Code Playgroud)