我已经定义了
var p = new OptionSet () {
// various options defined
};
然后我
p.Parse(args)
如果我用
打电话给我的节目myprogram --thisOptionIsNotDefined
我想显示帮助信息,而不是继续。但是Parse()在遇到无效选项时不会抛出OptionException。我该怎么办?
答案 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)
)。
--