【发布时间】:2016-08-11 02:43:00
【问题描述】:
我正在用 C# 开发一个简单的命令行界面。目前,它解析用户的输入并运行一长串 if-then-else 语句来执行用户可以键入的各种命令。一些例子:
- 制作目录
- 递归删除目录
- 进入目录
- 列出目录
- 进入文本编辑器或我正在为其编写的其他一些工具,例如我与解释器一起制作的 ASM 变体的基于文本的 UI,或一些数学工具或游戏,如重力模拟器或康威的生活游戏
- 保存一切状态
- 帮助功能
- 重命名文件
- 删除文件
if-then 链只是为了让事情正常进行。我想以更好的方式处理命令在界面中的表示方式。
我的第一个想法是有一个 Class Command 具有以下属性:
- 当用户键入
help时将列出的命令的摘要条目 - 用户输入帮助时的更具体信息
help 'specific command' - 参数数量
- 执行命令时要调用的函数的委托
由于这只是我的第一个想法,而且我对此还比较陌生,所以我想知道有什么更好的方法。
【问题讨论】:
-
我编写了一个可重用的命令行界面库,可以满足我在几个项目中的特定需求。也许它会为您提供一些额外的想法,让您在旅途中思考。 github.com/mariocatch/YACL
标签: c# delegates command command-line-interface