前一篇简单看了一下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>,而不是一个值,因为这个默认值可能依赖其他资源信息计算出来,而不是一个常量。
想要更快更方便的了解相关知识,可以关注微信公众号
标签:选项,Option,show,CommandLine,System,times,命令,参数 From: https://www.cnblogs.com/axzxs2001/p/16954079.html