跳至頁尾內容
Iron Academy Logo
C#應用程式
C#應用程式

其他類別

在控制台中新增表情符號 - Spectre Console 系列

[[academy-video-youtube({"vid": "ZJTbHEP3smU", "start_time": "0", "title": "Adding Emojis to Your Console - Spectre Console Series", "creator": "Tim Corey", "length": "6m 08s"})]]

Spectre.Console 是一個 .NET 程式庫,可以幫助您將普通的 C# 主控台應用程式轉換成美觀、功能豐富且資訊豐富的工具。 在他的 Spectre Console 系列中,Tim Corey 將整個影片專門用於"Adding Emojis to Your Console - Spectre Console Series"。

在本文中,我們將通過逐步學習 Tim 的影片,深入了解如何在 Spectre.Console 中使用表情符號。

介紹:Spectre Console 表情符號概述

在課程開始時,Tim 解釋說 Spectre Console 允許您"將您的 C# 主控台應用程式轉變為視覺上有吸引力且資訊豐富的應用程式。" 他指出,他的演示的原始碼可以通過影片描述中的連結在 GitHub 上獲得,這使得安裝包和跟隨學習變得容易。

Tim 說,在這節課中,我們將學習如何將表情符號新增到我們的主控台輸出中。 他指出,他包括了一個連結到官方表情符號列表和更多關於如何使用它們的文件。 他說這是至關重要的,因為在 Spectre Console 中有三種不同的方法來顯示表情符號,其中兩種涉及知道表情符號的實際字串名稱。

這直接涉及到 markdown 提示Spectre Console 標記 的概念,Tim 在他的演示中廣泛使用了這兩者。

方法 1:使用 Spectre Console 標記表情符號字串

Tim 的首次演示展示了顯示表情符號的最簡單方法——通過將表情符號名稱嵌入 Spectre Console 標記中。他使用 AnsiConsole.MarkupLine 撰寫了一行帶有表情符號占位符的文字:

AnsiConsole.MarkupLine("I like :baseball: :american_football:");
AnsiConsole.MarkupLine("I like :baseball: :american_football:");

Tim 解釋說,標記系統檢測到冒號作為表情符號字串的開始和結束,並將其替換為實際的表情符號字元。 如果您在一個簡單的類 Program 中的靜態 void Main 中運行此程式碼,控制台會在輸出中顯示棒球和美式足球的表情符號。

然而,Tim 警告語法:如果您錯誤地輸入表情符號名稱(例如,使用 :football: 而不是 :american_football:),則終端將回退到顯示僅文字 :football:。 他指出,您必須輸入與表情符號列表中定義的完全相同的表情符號字串。

Spectre Console Adding Emojis 1 related to 方法 1:使用 Spectre Console 標記表情符號字串

此範例還顯示了輸出編碼和控制台字體支援如何影響顯示。 Tim 說底層系統、字體和終端(Windows Terminal、PowerShell、cmd等)都會決定如何或是否顯示這些字元。

方法 2:使用 Emoji.Known 物件以便更容易查找

Tim 然後推進到他的第二種方法:使用 Emoji.Known 物件。 此方法避免了記住表情符號名稱的必要性,讓您可以從該程式庫所公開的列表中選擇。 他寫道:

AnsiConsole.WriteLine($"Hello {Emoji.Known.WorldMap}");
AnsiConsole.WriteLine($"Hello {Emoji.Known.WorldMap}");

Tim 指出,這使得程式化選擇表情符號變得容易。 在 IDE 中,您可以看到 Spectre.Console 支持的所有通用表情符號,如香蕉、鱷梨、臉等,這些表情符號可以插入而無需鍵入冒號分隔的名稱。

他還解釋了為什麼您可能會更偏好這種方法。 這種風格更易於放入資料庫或外部來源。 隨後,當您渲染控制台輸出時,您只需拉取物件引用(例如 Emoji.Known.Banana)並將其顯示即可。 這也是在強型別的方式中獲得 SpectreDemoEmoji 的一個不錯的方法,而不是依賴字串。

方法 3:從外部來源替換表情符號字串

Tim 的第三種方法模擬從資料庫中提取資料。 他寫道:

string displayText = "I am totally normal :zany_face:\n";
AnsiConsole.Write(displayText);
string displayText = "I am totally normal :zany_face:\n";
AnsiConsole.Write(displayText);

當您運行此程式碼時,控制台不會顯示表情符號。 相反,它字面上顯示 :zany_face:。 Tim 顯示,您必須顯式地使用 Emoji.Replace 方法將表情符號名稱替換為真實表情符號:

AnsiConsole.Write(Emoji.Replace(displayText));
AnsiConsole.Write(Emoji.Replace(displayText));

該方法將來自外部來源的字串轉換為一個可以用實際表情符號渲染的字串。 Tim 說,當您的文字包含使用者輸入的表情符號占位符或 markdown 提示時,這是至關重要的。

Spectre Console Adding Emojis 2 related to 方法 3:從外部來源替換表情符號字串

其他 Spectre Console 特性中的表情符號

Tim 提到表情符號不僅限於靜態文字。 一些 Spectre.Console 的內建小部件和微調器已經在內部使用表情符號。 他提到一個天氣微調器,會在晴天、陰天和雨天的面孔間迴圈。 這表明 Spectre.Console 中的功能、方法和任務可以使用表情符號來使其顯示更具表現力。

終端和操作系統支援問題

在展示表情符號看起來多麼酷之後,Tim 解釋了一個重要的限制:表情符號支持取決於您的操作系統、控制台字體和輸出編碼。

他演示了在 Windows Terminal、Visual Studio 的控制台和經典 cmd 殼中運行相同的程式碼。 在某些情況下,您會看到問號而不是表情符號。 那是因為控制台無法處理 Unicode 字元。

Tim 警告說,您必須設計您的控制台輸出,以便在表情符號不渲染時仍然有意義。 例如,如果您顯示"I like ⚾ 🏈"並且表情符號不出現,則會變為"I like ? ?"使用者將不再知道您在說什麼。 但如果您顯示"I like baseball ⚾",即使沒有表情符號文字仍然傳達意義。

Spectre Console Adding Emojis 3 related to 終端和操作系統支援問題

他強調,雖然表情符號可以為您的 Spectre.Console 應用增添色彩,但您不應讓它們成為您唯一的交流方式。

更多的表情符號幫助和安全選擇

Tim 最後指出了他提供的連結。 那個連結包含完整的支援表情符號列表、markdown 提示以及哪一些在各個終端上是最安全的。 他建議查看它以獲得更多的表情符號幫助、範例和更新。 在這裡,您將找到香蕉、牛油果、臉和其他有趣圖標的已定義名稱,以及有關瀏覽器或系統相容性的資訊。

結論

Tim Corey 作結,總結了在 Spectre.Console 中使用表情符號的三種主要方法:

  • 使用冒號分隔名稱的 Spectre Console Markup。

  • 用於簡單查找的 Emoji.Known 物件。

  • 用於從外部來源來的字串的 Emoji.Replace 方法。

他還重申字體支持、輸出編碼和使用者的終端或操作系統(cmd、PowerShell、Windows Terminal)如何影響表情符號的顯示。 始終在表情符號旁新增文字,並在多個殼中測試您的控制台輸出以確保相容性。

通過遵循 Tim 的影片,您可以輕鬆地建立、安裝和運行使用表情符號的 Spectre.Console 應用程式,使您的控制台輸出更友好且更具資訊性——即在表情符號支援有限時也不會失去清晰度。

Hero Worlddot related to 在控制台中新增表情符號 - Spectre Console 系列
Hero Affiliate related to 在控制台中新增表情符號 - Spectre Console 系列

分享您所愛以賺取更多報酬

您是否為使用 .NET、C#、Java、Python 或 Node.js 的開發者建立內容?將您的專業知識轉化為額外收入!

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話