如何在 2 个参数之间使用具有 OR 关系的选项

Posted

技术标签:

【中文标题】如何在 2 个参数之间使用具有 OR 关系的选项【英文标题】:How to have Options with OR relations between 2 arguments 【发布时间】:2021-10-24 12:21:07 【问题描述】:

我有一个非常基本的问题,下面是我的 Options 课程。我需要在 j 和 f 标志之间建立 OR 关系,即任何人都应该被强制通过。

        [Option('j', "jsonfile", Required = true, HelpText = "Path to json file")]
        public string JsonFilePath  get; set; 

        [Option('f', "jsonfolder", Required = true, HelpText = "Path to json directory")]
        public string JsonFolder  get; set; 

        [Option('t', "targetpath", Required = true, HelpText = "Target folder")]
        public string TargetFolder  get; set; 

我需要的是,如果 j 没有在参数中传递,那么 f 应该是强制性的,或者如果 f 不是传入参数,那么 j 应该是强制通过的。我怎样才能做到这一点?

【问题讨论】:

那是System.CommandLine吗? 它的 CommandLineParser github.com/commandlineparser/commandline。但如果你知道如何在 System.CommandLine 中实现,我可以试试。 我不知道解决方案,但我已经为您的问题添加了适当的标签。 【参考方案1】:

看起来 Group 为您解决了问题。

        [Option('j', "jsonfile", Group= "json", HelpText = "Path to json file")]
        public string JsonFilePath  get; set; 

        [Option('f', "jsonfolder", Group= "json", HelpText = "Path to json directory")]
        public string JsonFolder  get; set; 

        [Option('t', "targetpath", Required = true, HelpText = "Target folder")]
        public string TargetFolder  get; set; 

【讨论】:

以上是关于如何在 2 个参数之间使用具有 OR 关系的选项的主要内容,如果未能解决你的问题,请参考以下文章

在-2和2之间的10个随机点的列表,具有均匀分布

具有关系的 NSManagedObject 的 Coredata 和 Generated 子类

如何在 listView 选项之间导航?

如何使用 Laravel 获取具有表之间关系的数据

如何在 KivyMD 屏幕之间传递参数?

无论如何在2个节点之间的谷歌组织图表API中显示虚线?