命令行界面的类结构

时间:2016-08-11 02:43:00

标签: c# delegates command command-line-interface

我正在用C#开发一个简单的命令行界面。目前,它解析用户的输入并运行if-then-else语句的长链来执行用户可以键入的各种命令。一些例子:

  • 制作目录
  • 递归删除目录
  • 输入目录
  • 列出目录
  • 输入文本编辑器或其他一些我正在为它编写的工具,就像我使用解释器或某些数学工具或游戏(如重力模拟器或conway)制作的ASM变体的基于文本的UI一样生命的游戏
  • 保存所有的状态
  • 帮助功能
  • 重命名文件
  • 删除文件

if-then链条只是为了让事情顺利进行。我希望以更好的方式接近命令在界面中的表示方式。

我首先想到的是Class Command有一些属性,如:

  • 当用户键入help
  • 时将列出的命令的摘要条目
  • 用户输入帮助help 'specific command'
  • 时的更具体信息
  • 参数数量
  • 执行命令时要调用的函数的委托

由于这只是我的第一个想法,而且我对此比较陌生,我想知道更好的方法是什么。

1 个答案:

答案 0 :(得分:1)

在这种情况下,切换案例可能比if..else好:

switch (command)
{
    case "copy":
        // Copy
        break;
    case "create":
        // Create;
        break;
}

对于命令,命令模式是实现接口的最佳方式,很少引用以命令设计模式开头: https://code.msdn.microsoft.com/windowsapps/Design-Patterns-Command-1962d567 http://www.blackwasp.co.uk/command.aspx

您还可以在线参考命令行实用程序的示例实现,以了解如何解析命令行参数,例如: http://crmcommandline.codeplex.com/