小编典典

在 C# 中解析命令行参数的最佳方法是什么?

all

在构建带参数的控制台应用程序时,您可以使用传递给Main(string[] args).

在过去,我只是简单地索引/循环该数组并执行了一些正则表达式来提取值。但是,当命令变得更复杂时,解析会变得非常难看。

所以我感兴趣:

  • 您使用的库
  • 您使用的模式

阅读 110

收藏
2022-03-03

共1个答案

小编典典

我强烈建议使用NDesk.Options文档)和/或Mono.Options(相同的
API,不同的命名空间)。文档中的一个示例

bool show_help = false;
List<string> names = new List<string> ();
int repeat = 1;

var p = new OptionSet () {
    { "n|name=", "the {NAME} of someone to greet.",
       v => names.Add (v) },
    { "r|repeat=", 
       "the number of {TIMES} to repeat the greeting.\n" + 
          "this must be an integer.",
        (int v) => repeat = v },
    { "v", "increase debug message verbosity",
       v => { if (v != null) ++verbosity; } },
    { "h|help",  "show this message and exit", 
       v => show_help = v != null },
};

List<string> extra;
try {
    extra = p.Parse (args);
}
catch (OptionException e) {
    Console.Write ("greet: ");
    Console.WriteLine (e.Message);
    Console.WriteLine ("Try `greet --help' for more information.");
    return;
}
2022-03-03