跳過到頁腳內容
Iron Academy Logo
C# 應用程式
C# 應用程式

其他分類

在C#中使用Spectre.Console入門:輕鬆創建美麗的控制台應用 - 與Tim Corey

Tim Corey
9m 44s

如果您是正在尋找創建美麗控制台應用程式的.NET開發者,那麼Spectre.Console C#程式庫提供了一種用戶友好且功能強大的方式來豐富您的終端介面。 在他的Spectre.Console系列中,Tim Corey提供了一步一步的演示,從初始設置到使用程式庫的關鍵功能,如進度條、表格、互動提示,甚至ASCII圖像。

在本文中,我們將跟隨Tim的影片"Initial Setup and Best Practices - Spectre Console Series",使用他精確的流程和見解。 您將學習如何添加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成為以引人入勝的方式呈現信息---而不需要任何GUI框架的理想工具。

使用設置標籤結構化控制台應用程式

Tim通過註釋標記當前課程來組織代碼:

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

此結構有助於在多個課程中維護專案。 他還添加了:

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

這會暫停輸出,以便用戶查看結果,然後在按下Enter鍵後清除終端---保持界面為下一次運行而整潔。

理解終端和Shell之間的差異

Tim然後解釋當前終端的功能如何影響Spectre.Console的輸出。 他區分了:

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

  • 終端(例如Windows Terminal): 顯示Shell輸出的視覺容器。

這一區分很重要,因為Spectre.Console依賴於終端來渲染樣式。 如果您的終端不支持閃爍或粗體文本,您可能看不到預期的結果---即使您的代碼是正確的。

在Windows Terminal中配置字體和顯示設置

為啟用文本樣式功能如粗體、下劃線和顏色,Tim演示了Windows Terminal設置:

  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上下文處理命令行參數,還是使用public class 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 小時在線上。
聊天
電子郵件
打電話給我