跳至页脚内容
Iron Academy Logo
C# 应用程序
C# 应用程序

其他类别

C# Spectre.Console 入门:轻松创建漂亮的控制台应用程序--与 Tim Corey 一同学习

Tim Corey
9分44秒

如果您是一名.NET 开发人员,希望创建漂亮的控制台应用程序,Spectre.Console C# 库提供了一种用户友好且功能强大的方式来丰富您的终端界面。 在他的 Spectre.Console 系列中,Tim Corey 从初始设置到使用库的主要功能(如进度条、表格、交互式提示甚至 ASCII 图像),提供了循序渐进的讲解。

在本文中,我们将跟随 Tim 的"初始设置和最佳实践 - Spectre Console 系列"视频,使用他的准确流程和见解。 您将学习如何添加 NuGet 软件包、在 Visual Studio 中配置控制台应用程序,以及在使用文本样式和当前终端功能时避免常见陷阱。

让我们开始吧!

通过 NuGet 软件包管理器安装 Spectre.Console.

Tim 从一个使用 .NET 9 的全新 .NET 项目开始。在 Visual Studio 中,他导航到 NuGet 包管理器并搜索 "Spectre"。 这里的目标是安装 Spectre.Console 软件包--不要与 CLI 或 JSON 变体混淆。

尽管目前的版本是 0.50.0,但 Tim 再次向我们保证,即使没有标注 1.0,这个库也已经成熟,可以投入生产。它是一个.NET库,能让我们更轻松地在终端中创建漂亮的结构化输出。

安装后,他在文件顶部加入了指令:

using Spectre.Console;
using Spectre.Console;

这允许访问 AnsiConsole.MarkupLine、进度显示和交互式提示等核心功能。

创建您的第一个样式化控制台输出

为了确认一切正常,Tim 使用 Spectre 的标记系统编写了一个简单的输出:

AnsiConsole.MarkupLine("[red bold]Hello World[/]");
AnsiConsole.MarkupLine("[red bold]Hello World[/]");

该版本将基本的 Console.WriteLine()替换为更灵活的输出选项,支持粗体、斜体、下划线和颜色等样式。 本示例使用粗体红色文字,展示 Spectre.Console 如何让创建漂亮的控制台应用程序变得更容易。

演示文本样式和动画效果

Tim 又添加了两行:一行是普通的 Hello World,另一行则使用 Spectre 的标记功能添加了缓慢闪烁的效果。 这些内容展示了该库如何显示动画旋转器和动态文本--这对于长时间运行的任务和状态控件来说是一个很好的功能。

您可以使用以下样式

  • \成功[//]

  • \正在加载......[//]

  • \请稍候......[//]

这些选项支持 Unicode 字符,使 Spectre.Console 成为以引人入胜的方式呈现信息的理想选择--无需任何图形用户界面框架。

使用设置标记构建控制台应用程序

Tim 通过用注释标记当前课程来组织代码:

// Lesson 2: Initial Setup
// Lesson 2: Initial Setup

这种结构有助于在多个课程中维持项目。 他还补充道

Console.ReadLine();
AnsiConsole.Clear();
Console.ReadLine();
AnsiConsole.Clear();

这将暂停输出,以便用户查看结果,然后在按下回车键后清除终端--为下一次运行保持界面清洁。

了解终端和 Shell 的区别

然后,Tim 解释了当前终端的功能如何影响 Spectre.Console 的输出。 他区分了

  • Shell (如 PowerShell 或 CMD):命令处理器。

  • 终端(如 Windows 终端):显示 shell 输出的可视化容器。

这一区别非常重要,因为 Spectre.Console 依靠终端来呈现样式。 如果您的终端不支持闪烁或粗体文本,您可能无法看到预期的结果--即使您的代码是正确的。

在 Windows 终端中配置字体和显示设置

为了启用文本样式功能,如粗体、下划线和颜色,Tim 演示了 Windows 终端设置:

1.字体面:设置为 Cascadia Code,它支持粗体、Unicode 和 ASCII 图像等现代控制台功能。

2.文本格式:在文本格式 → 强化文本样式下,将 亮色 更改为粗体。

这些配置可确保您的 Spectre.Console 应用程序能够按照预期显示粗斜体、闪烁和彩色文本。

通过辅助功能设置修复闪烁问题

如果您的闪烁样式不起作用,Tim 建议您检查 Windows 辅助功能设置:

  • 转到辅助功能 → 视觉效果

  • 启用动画效果

如果不这样做,控制台就不会呈现动画旋转器或闪烁的文本。 在尝试在应用程序中显示进度或突出显示状态时,这些微小的改动会带来很大的不同。

使用正确的终端上下文运行应用程序

为了确保一切运行正确,Tim 复制了他的 .NET 项目的完整路径,通过命令行导航并运行:

dotnet run

这对于测试不同 shell 的性能非常有用。 例如,PowerShell 显示进度条的方式可能与 Git Bash 或 CMD 不同。

您还可以在这里探索自动检测功能并尝试渲染:

  • 使用 var table = new Table() 创建一个新表格;

  • 使用 var chart = new BarChart() 制作水平条形图;

  • 甚至可以使用表格数据或 ASCII 图像进行装饰

Tim 鼓励大家尝试各种输出,这将在今后的课程中介绍。

最后的思考--Spectre.Console C# 的下一步

Tim 在结束初始设置时强调,Spectre.Console 在很大程度上受到了优秀的 Python 编写的 Rich 库的启发。 他再次保证,这个 .NET 库完全能够进行渲染:

  • 风格化文本

  • 互动提示

  • 命令行参数解析

  • 状态指标

  • 甚至支持单元测试和依赖注入

无论您是使用 CommandContext 上下文处理命令行参数,还是使用公共类 Settings 定义用户选项,Spectre.Console 都能根据项目的复杂程度进行扩展。

结论

正如 Tim Corey 在视频中展示的那样,Spectre.Console 是一个功能强大的库,可以让 C# 控制台应用程序变得美观且具有交互性。从在 Visual Studio 中设置到调整终端以正确渲染,每一步都对释放该工具的全部潜能至关重要。

无论您是要显示进度、输出表格数据、使用 ASCII 图像,还是要改进命令行交互,Spectre.Console 都是您需要了解的库。 通过深思熟虑的配置和对终端的了解,您将能够在 .NET 中直接构建专业级的控制台应用程序。

有关完整源代码和更多教程,请访问 IAmTimCorey.com 并继续 Spectre.Console 系列,以便更深入地集成到您的下一个项目中。

Hero Worlddot related to C# Spectre.Console 入门:轻松创建漂亮的控制台应用程序--与 Tim Corey 一同学习
Hero Affiliate related to C# Spectre.Console 入门:轻松创建漂亮的控制台应用程序--与 Tim Corey 一同学习

分享您的所爱,赚取更多收入

您为使用 .NET、C#、Java、Python 或 Node.js 的开发人员创建内容吗?将您的专业知识转化为额外收入!

钢铁支援团队

我们每周 5 天,每天 24 小时在线。
聊天
电子邮件
打电话给我