Mono.Options:检查是否给出了无效选项

时间:2013-01-31 17:47:07

标签: c# mono

我已经定义了

var p = new OptionSet () {
 // various options defined
};

然后我

p.Parse(args)

如果我用

打电话给我的节目
myprogram --thisOptionIsNotDefined

我想显示帮助信息,而不是继续。但是Parse()在遇到无效选项时不会抛出OptionException。我该怎么办?

2 个答案:

答案 0 :(得分:5)

您可以询问OptionSet.Parse()的返回以查找任何无效参数。

来自NDesk OptionSet documentation

  

OptionSet.Parse(IEnumerable),返回一个List of all   与注册的NDesk.Options.Option不匹配的参数。

答案 1 :(得分:0)

%返回任何未处理的参数。但请注意,这可能还包括您的程序的任何实际(非选项)参数,例如输入文件。在这种情况下,您不能只检查是否返回任何内容。

E.g。解析下面的OptionSet.Parse()将返回args

["input.txt", "--thisOptionIsNotDefined"]

为了解决这个特殊问题,我写了一个扩展方法myprogram input.txt --thisOptionIsNotDefined 。它只是检查解析后没有任何选项保持未处理(考虑p.ParseStrict(args))。

--
相关问题