IRONSOFTWAREHOME

从列表中选择项目 - Spectre 控制台系列

从列表中选择项目 - Spectre 主机系列

Tim Corey

6分26秒

Spectre Console 是一款功能强大的 .NET NuGet 软件包,它可以让开发人员构建交互式控制台应用程序,而不是纯静态文本程序。 它最有用的功能之一是 Spectre 控制台选择提示,它允许您显示一个选项列表,用户可以直接用键盘滚动和选择。 与手动输入答案相比,这将使控制台输入更加可靠、用户友好和视觉精美。

在他的视频"从列表中选择项目 - Spectre Console 系列"中,Tim Corey 准确地演示了如何使用这一功能。 在本文中,我们将逐步跟随他的解释,指出时间戳,这样您就可以观看并一起编写代码。 这是学习如何在自己的 .NET 控制台应用程序中创建和自定义选择提示的好方法。

课程简介

0:00 时,Tim 解释说,Spectre Console 允许开发人员将 C# 控制台应用程序转化为视觉效果好、信息量大的应用程序。 他的系列视频以 10 分钟为一个单元介绍了库,并在说明中链接了源代码。

在本课(0:18)中,Tim 将重点讲解如何要求用户从列表中选择一个选项,然后使用键盘浏览该列表。这种 "问答 "模式是构建具有现代感和交互性的控制台应用程序的基础。他还提醒观众(0:27)订阅他的频道并访问 iamtimcorey.com 以获取更多培训资源。

创建选择提示

在 0:34 处,Tim 展示了他在应用程序中常用的占位符名称列表。 如果您想要一个 "最喜欢的水果 "的例子,这也可以是一个水果列表--苹果、香蕉、橙子。 他设置了一个字符串类型的变量来保存用户将选择的答案:

string favoriteName;

然后,在 0:57 处,Tim 从上一课的基本提示转到完整的 SelectionPrompt 功能:

favoriteName = AnsiConsole.Prompt(
    new SelectionPrompt<string>()
        .Title("Which is your favorite placeholder name")
        .AddChoices(names)
);

他解释说(1:13),SelectionPrompt 需要一个标题,在他的例子中就是 "您最喜欢的占位符名称是什么"。如果您要询问最喜欢的水果,您可以将标题相应改为 "您最喜欢哪种水果"。

虽然您可以使用 Spectre Console 的样式来装饰文本(1:24),例如使用蓝色、绿色或灰色,但在本课中,他将重点放在选择提示本身。

在 1:39 处,Tim 通过调用 .AddChoices() 添加选择--他的名称列表。 这些选择可以是任何东西:水果、数字、对象,甚至是 "搜索 "功能的结果。

最后,在 1:55 处,Tim 使用 Spectre Console 的标记行将所选项目显示给用户:

AnsiConsole.MarkupLine($"Your favorite name is [red]{favoriteName}[/].");

此处使用内联标记将选定的答案染成红色,但如果您的控制台主题需要,也可以使用蓝色或绿色。

运行选择提示

Tim 保存并运行 2:34 处的代码。控制台显示

  • 名称或水果列表。

  • 箭头键可让您上下移动(2:41)。

  • 按 Enter 键选择项目。

Tim 演示选择 "Sue Storm"(2:50)。 按下回车键后,列表消失,控制台输出:

Your favorite name is Sue Storm.

如果这是一份水果清单,您可能会看到:"您最喜欢的水果是香蕉":"您最喜欢的水果是香蕉 "或 "您最喜欢的水果是苹果"。

处理长列表

然后,Tim 解决了一个常见问题:冗长的列表。 在 3:13 处,他介绍了用于限制可见项目的 PageSize 属性:

.PageSize(4)

他解释说(3:19),为了演示功能,特意将四个字写得很小。 一次只能显示这么多项目。 如果您有一个大的水果列表--苹果、香蕉、橙子、芒果、菠萝--PageSize 可以防止控制台无休止地滚动。

为了引导用户,Tim 在 3:34 处添加了一条灰色的 MoreChoicesText 信息:

.MoreChoicesText("[grey](Move down to reveal more choices)[/]")

这段文字告诉用户,他们可以向下移动以显示更多选择。 当您的列表规模较大,您希望得到明确的提示,而不是冒着出错或混淆的风险时,这一点尤其有用。

演示长列表行为

Tim 在 4:08 再次运行程序:

  • 最初只有四个选项。

  • 灰色信息显示 "向下移动以显示更多选择"(4:13)。

  • 向下滚动可显示更多项目。

  • 再次向上滚动可显示第一批内容(4:20)。

Tim 指出(4:25),这非常适合大型列表--无需无休止地滚动控制台。 您可以一次显示 10 或 15 个,然后让用户翻阅其余部分。这就解决了控制台一次显示过多输出的问题。

为什么选择提示优于键入?

在 4:38 处,Tim 强调了为什么选择提示比打字更好:

  • 一旦您做出选择,列表就会消失(4:41)。

  • 您将立即看到您选择的答案(4:45)。

他将这一点(5:05)与以前用户必须键入 "是 "或 "否 "的提示进行了比较。有了 SelectionPrompt,您可以直接提供这些选择,并让用户使用箭头键进行选择,从而减少错误,使体验更加流畅。

蒂姆说(5:35)提示符是一个 "非常酷的补充",因为它简化了输入,使控制台应用程序更具交互性,并为输入问题提供了明确的解决方案。

其他用途和未来主题

Tim 提到(5:43)这一节涵盖了从列表中选择一项。在未来的视频中,他将展示多选择提示(5:39),用户可以打开和关闭多个项目,然后按下 Enter 进行确认。

他还指出(5:47),列表可以是任何对象类型--字符串、整数、果实,甚至是函数返回的默认选项。 例如,您可以提示用户他们最喜欢的水果("苹果"、"香蕉"、"橙子"),而不是名称(5:55)。

利用 Spectre Console 的选择提示功能,您甚至可以设置默认值、处理必填答案并自定义选择后的操作。

结论

Tim 在视频的最后(6:01)重申,这就是您在 Spectre Console 中实现项目选择的方式--一种简洁、用户友好的方式来处理控制台应用程序中的列表。 无论您是询问最喜欢的水果、数字还是对象,选择提示都能为您的应用程序带来完美的体验,而不会出现额外的键入或错误。

从 Tim Corey 的视频中获得的主要启示

  • Spectre Console 的 SelectionPrompt 可让用户使用箭头键浏览列表,而无需手动输入。

  • 自定义标题、选项、颜色(蓝色、绿色、灰色)、页面大小和 MoreChoicesText,以帮助显示更多选项。

  • 一旦选择了一个项目,列表就会消失,并显示所选答案。

  • 既适合短列表,也适合长列表,防止出现控制台滚动问题。

  • 适用于任何数据类型(字符串、数字、苹果、香蕉、橙子等水果或自定义对象)。

  • Tim 将在未来的视频中展示多选择提示,用户可以打开和关闭多个选项,然后按下 Enter 进行确认。

Earn More by Sharing What You Love

Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!

Let's Stay in Touch!

Join our newsletter, you’ll get exclusive access on article updates. We value your privacy

Key in blue circle

立即获取免费的 30 天试用版密钥

Your trial license will be sent to your email address

无任何限制。100% 解锁。无需信用卡。

bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥
无需信用卡或创建账户