gpt4 book ai didi

c# - 使用 CommandLine Parser Library 标记所需集

转载 作者:行者123 更新时间:2023-11-30 17:06:46 26 4
gpt4 key购买 nike

使用 Command Line Parser Library , 有没有办法标记一组 say 3 选项并准确地制作所需的三个选项之一?

所以有这些选择:

[Option("list-plugins", MutuallyExclusiveSet = "Commands")]
public bool ListPLugins { get; set; }

[Option("list-languages", MutuallyExclusiveSet = "Commands")]
public bool ListLanguages { get; set; }

[OptionList('f', "files", ',', MutuallyExclusiveSet = "Commands")]
public IList<string> Files { get; set; }

我希望用户一次只能使用一个。

即有效调用将包括恰好具有以下选项之一的调用:“MyProgram --files a.txt”“MyProgram --list-languages”“MyProgram --list-plugins”

while 调用时没有或有多个选项:"MyProgram"(这种情况是我的问题),"MyProgram --files a.txt --list-languages""MyProgram --list-languages --list-plugins" 将无效。

最佳答案

@PHeiberg,您已将所有选项放入集合 Commands 中,这是正确的,如 here 所述.

通过这种方式,您告诉解析器:嘿,让用户选择其中之一!

如果您添加绑定(bind)到另一组的另一个选项:

[Option MutuallyExclusiveSet = "Other"]
public int Offsets { get; set; }

您可以根据需要指定它,但 Commands 集中的选项是互斥的。

根据实际设计,您所要求的仍然不存在(但可以实现)。

也就是说,我们知道存在一个 Required 属性以及它是如何关联的?

如果您将 Required = true 应用于您(在实际实现中)的多个选项之一,您会自相矛盾并混淆解析器。

随时提出问题。

实际实现支持verbs命令。请注意,动词命令在设计上是相互排斥的,您必须先看一眼(您想要的选项行为)。

也许这不是你想要的,反正这里有描述here .

关于c# - 使用 CommandLine Parser Library 标记所需集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15208798/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com