前言

你是否厌倦了控制台应用程序默认的简陋界面?

这时,你可以试试引用Nuget包Spectre.Console

打印使用帮助

首先,我们可以设置控制台应用程序可以执行的命令:

static async Task<int> Main(string[] args)
{var app = new CommandApp();app.Configure(config =>{config.AddCommand<DemoCommand>("demo");config.AddCommand<AnotherCommand>("another");});return await app.RunAsync(args);
}

然后,为每个命令指定参数:

public class DemoCommandSettings : CommandSettings
{[CommandOption("-u|--username")][Description("需要显示的名称")]public string Name { get; set; }
}

最后,实现命令:

public class DemoCommand : AsyncCommand<DemoCommandSettings>
{public override Task<int> ExecuteAsync(CommandContext context, DemoCommandSettings settings){Console.WriteLine($@"Hello {settings.Name}!");return Task.FromResult(0);}
}

可以看到,Spectre.Console自动生成了帮助信息,指导用户如何使用。

与用户交互

我们还可以运行命令时询问用户,进行一定的交互输入:

var name =settings.Name?? AnsiConsole.Ask<string>("What's your [green]name[/]?");
Console.WriteLine($@"Hello {name}!");

显示信息

当我们从用户那里收集完信息后,可以让用户检查信息,以确保所有信息输入正确。例如,我们可以以表格格式呈现摘要:

do
{name = AnsiConsole.Ask<string>("What's your [green]name[/]?");var table = new Table();table.AddColumn("参数");table.AddColumn(new TableColumn("值").Centered());table.AddRow("-u", $@"[green]{name}[/]");AnsiConsole.Write(table);
} while (!AnsiConsole.Confirm("输入是否正确?"));

报告进度

在执行命令时,可以显示进度来告诉用户工作完成的百分比:

await AnsiConsole.Progress().StartAsync(async ctx =>{ var task1 = ctx.AddTask("执行中......");while (!ctx.IsFinished){// 模拟工作耗时await Task.Delay(100);task1.Increment(1);}});

结论

正如我在开始时提到的,使用Spectre.Console可以创建出漂亮的控制台应用程序,更多功能请参看官方文档:https://spectreconsole.net/

如果你觉得这篇文章对你有所启发,请关注我的个人公众号”My IO“

使用Spectre.Console创建漂亮的控制台应用程序相关推荐

  1. 使用 Visual Studio 创建 .NET 5 控制台应用程序

    先决条件 请先安装 Visual Studio 2019 版本 16.8 或更高版本. 创建应用 创建一个名为"DotNet5.ConsoleApp"的 .NET 控制台应用项目 ...

  2. 如何:创建 C# 控制台应用程序

    本主题旨在生成最简单形式的 C# 程序(控制台应用程序)熟悉 Visual Studio 2008 开发环境.由于控制台应用程序是在命令行执行其所有的输入和输出,因此对于快速测试语言功能和编写命令行实 ...

  3. 控制dcom程序使用端口_使用VS Code调试.net控制台应用程序的方法

    本文由 比特飞 原创发布,欢迎大家踊跃转载. 转载请注明本文地址:https://www.byteflying.com/archives/6928. 1.概述 本文向大家介绍使用Visual Stud ...

  4. 使用Visual Studio Code调试.net控制台应用程序的方法

    该文章的最新版本已迁移至个人博客[比特飞],单击链接:使用Visual Studio Code调试.net控制台应用程序的方法 | .Net中文网. 1.概述 本文向大家介绍使用Visual Stud ...

  5. vs2017控制台应用程序调用DLL

    网上这类帖子乱而杂,废话不多说,直接上干货. 1.创建一个c++控制台应用程序,这块不清楚的小伙伴,可以查一下其它的帖子. 2.复制dll.lib..h等你所需要的文件到项目根目录下 3.右键点击项目 ...

  6. 使用C#创建SQLite控制台应用程序

    本文属于原创,转载请注明出处,谢谢! 一.开发环境 操作系统:Windows 10 X64 开发环境:VS2015 编程语言:C# .NET版本:.NET Framework 4.0 目标平台:X86 ...

  7. linux .net 控制台应用程序,使用 Visual Studio Code 创建 .NET 控制台应用程序 - .NET | Microsoft Docs...

    教程:使用 Visual Studio Code 创建 .NET 控制台应用程序Tutorial: Create a .NET console application using Visual Stu ...

  8. ios snapkit m_如何使用自动布局和SnapKit在iOS上创建漂亮的拉伸布局

    ios snapkit m by Enabled Solutions 由Enabled Solutions 如何使用自动布局和SnapKit在iOS上创建漂亮的拉伸布局 (How to create ...

  9. swift视图容器_如何使用IBDesignable在Swift中创建漂亮的,可重复使用的渐变视图...

    swift视图容器 by Lee Dowthwaite 通过李道思韦特 如何使用IBDesignable在Swift中创建漂亮的,可重复使用的渐变视图 (How to create a beautif ...

最新文章

  1. malloc为什么会报错:memory corruption
  2. 终于搞懂了sleep/wait/notify/notifyAll
  3. signature=ecbb5c28a0561484700bbfeebe84cc52,Corps next in line as bond fees are hit by ECB
  4. Macosx Setdns
  5. 计算机无法用telnet,为何我的电脑cmd没法使用telnet命令?
  6. mysql data_add data_sub
  7. 计算机应用与技术大赛,关于举办2017年燕山大学第一届计算机应用技术与程序设计大赛的通知...
  8. mercurial和svn_DBA Mercurial简介–处理文件和更改
  9. DataList控件中使用Xml数据源
  10. LINUX设备驱动之platform总线
  11. Windows 7 极限精简 x86 x64 2018年度版
  12. Ubuntu软件商店下载速度慢
  13. 电信IHO-3000机顶盒高安版 悦ME刷机固件
  14. Pyramidal Feature Shrinking for Salient Object Detection阅读笔记
  15. maven-replacer-plugin 静态资源打包方案js css
  16. 用汽车拉苹果的例子来说HTTPS的安全性很容易理解 但HTTPS并不是绝对可靠的
  17. 在树莓派(Linux)上使用FTDI的usb转串口芯片ft232两种驱动方式(VCP和D2xx)
  18. 在某点邻域有定义_z = f(x, y) 在点 (x0, y0) 的某一邻域内有定义, 当x从x0 取.PPT...
  19. firefox android 夜间模式,Firefox插件开发:夜间模式
  20. jQuery仿苏宁易购导航

热门文章

  1. 数据分析和数据挖掘的理论研究必要性
  2. Exchange Server 2003邮件服务器系统的基本部署思路
  3. python数组替换_Python:替换数组中的值
  4. Django用户注册、登录、注销(一)
  5. Bomb(hdu 3555)
  6. CentOS 安装jdk1.7 64位
  7. 基于JavaScript技术的横排文字转古书式竖排工具
  8. 计算机专业单元测试卷答案,银保监会考试题库:计算机类模拟试题练习(六)答案...
  9. 计算机启动程序bios_如何构建自己的计算机,第三部分:准备BIOS
  10. 管理员获得所有权_在Windows 7中获得注册表项的所有权