前一篇简单看了一下CommandLine命令的使用,其实在一个命令行工具中,还有一个重要的点,那就是选项——Option,选项是为命提供参数,就好像C#中方法,Command就像方法,Option就像方法的参数,说到参数就有参数类型,形参(形式参数名称),同理,CommandLine也有,看一个带Option的例子:

//创建根命令
var rootCommand = new RootCommand("这是一个命令行工具:旦猫");
rootCommand.SetHandler(() =>
{Console.WriteLine("欢迎使用《旦猫》");
});
//创建子命令 show
var showCommand = new Command("show", "显示一些信息");
//创建子命令选项 times 别名 t
var timesOption = new Option<int>(name: "--times", description: "显示的次数", getDefaultValue: () => 1)
{IsHidden = true,
};
timesOption.AddAlias("-t");
//添加选项到show命令中
showCommand.AddOption(timesOption);
//设置命令show执行的动作,这是带上times参数,类型为整型
showCommand.SetHandler((int times) =>
{for (var i = 0; i < times; i++){Console.WriteLine($"这是《旦猫》的show命令,显示次数={i}");}
}, timesOption);
//添加命令show到 根命令中
rootCommand.Add(showCommand);
await rootCommand.InvokeAsync(args);

选项可以添加别,添加描述,设置默认值 ,还设置是否可以隐藏,或是必填,选项会在命令的执行方法SetHandler接收。

运行结果,-t 5,循环5次;如果选项参数的类型不对,会有提示;不输入选项参数,默认直为1,这里很友好的提供了一个Func<int>,而不是一个值,因为这个默认值可能依赖其他资源信息计算出来,而不是一个常量。

System.CommandLine选项Option相关推荐

  1. Mysql:命令选项、配置选项、(全局、会话)系统变量、状态变量:命令选项...

    Server Command Options --help, -? Command Line Format -? Config File Format help Display a short hel ...

  2. java命令行选项6_6.jdk命令行工具

    名称 主要功能 jps JVM Process Status Tool,显示指定系统内所有HotSpot虚拟机进程 jstat JVM Statistics Minitoring Tool,用于收集H ...

  3. windows Installer(msiexec.exe)命令行选项

    Msiexec.exe用来解释和安装windows下的安装程序(*.msi) .以下适用与3.0以后的版本. 一 Msiexec.exe的标准命令行参数,区分大小写. Option Parameter ...

  4. 字选项套接字选项-java教程

    今天一直在研究字选项之类的问题,现在正好有机会和大家分享一下. ================================================  套接字机制供给了两个套接字选项接口来 ...

  5. jquery操作select option使用小结

    2019独角兽企业重金招聘Python工程师标准>>> 1.获取选中select的value和text,代码如下: <select id="mySelect" ...

  6. Makefile选项 CFLAGS LDFLAGS

    makefile内嵌隐含规则的命令中,所使用的变量都是预定义的变量.我们将这些变量称为"隐含变量".这些变量允许对它进行修改:在Makefile中.通过命令行参数或者设置系统环境变 ...

  7. 【响应式Web前端设计】new Option()函数的作用(三区联动)

    在做三级联动的时候遇见了这个函数,对函数的用法进行一下小总结,不太详细,敬请谅解. 作用:用于创建一个新的选项 Option()构造函数接受两个参数:文本(text)和值(value);第二个参数可选 ...

  8. js动态添加,删除option及add的使用方法

    <!DOCTYPE html> <html>     <head>         <meta charset="UTF-8">   ...

  9. Intel Realsense D435 pyrealsense2 get_option_description() rs.option中获取参数描述

    通过get_option_description()函数能够打印rs.option中的参数描述,如: sensor = pipeline.get_active_profile().get_device ...

最新文章

  1. Leetcode 53 最大子串和
  2. 商汤科技2020数据分析师0820笔试题目整理
  3. 谁适合做Scrum Master?
  4. Babel 6.25 版本发布,JavaScript 编译器
  5. log4j 配置文件示例_Log4j2示例教程–配置,级别,附加程序
  6. java SimpleDateFormat类浅析
  7. Quartz.Net定时任务时间表达式设置
  8. 四种软件开发模式(瀑布、迭代、螺旋、敏捷),对比分析
  9. 人的命,三分天注定,七分靠打拼,有梦就会红,爱拼才会赢
  10. javaweb——jsp动作标签
  11. postgresql下载linux版本
  12. mysql 联合主键 自增_mysal 数据库联合主键自增问题
  13. 计算机网络 实验三 网络互联与路由协议配置
  14. CVE-2022-1162 Gitlab 硬编码漏洞分析
  15. Golang连接kafka报错: Errorkafka: client has run out of available brokers to talk to
  16. Google的技术构架 (精心整理版)
  17. Oracle数据库入门
  18. 东南大学计算机网络实验报告三,东南大学计算机网络第三次实验报告.docx
  19. 01【ArcGIS Pro SDK for Microsoft .NET】环境搭建及Demo创建
  20. 2、编译、交叉编译概念小记

热门文章

  1. .COMBO勒索病毒解密恢复 .xx4444 勒索病毒数据库恢复 .ALCO勒索病毒解密恢复
  2. 声源近场与远场定位及方法
  3. VMware清理Linux虚拟机硬盘
  4. 《Federated_Machine_Learning:Concept_and_Applications》精读
  5. MSK的CPM调制和I-Q调制
  6. 前端改变this指向的方法有哪些?如何判断this指向?
  7. java面试题怎么背?java面试题有哪些?
  8. 四个小问题,简单解释一下 tomcat 和servlet 的关系
  9. oracle form 6i菜单模块,利用DDE技术实现ORACLE FORMS 6i 中打开文件(如:EXCEL、WORD、图片、网页)的功能...
  10. 从汇编角度看一个C函数调用