如何提升.NET控制台应用体验?

在.net生态系统中,控制台程序的表现通常不如gui应用那么引人注目,它们经常被用作演示程序。然而,现在是时候给予控制台应用程序应有的重视了。

随着终端技术的发展,增强用户体验的机会也随之增加。ITerm2HyperWindows Terminal工具已经为单调的控制台体验增添了趣味。虽然这些工具允许用户定制体验,但开发人员仍希望在控制台应用程序中加入更多编程风格。

在本文中,我们将探讨如何通过一些优秀的开源项目来增强我们的控制台程序的趣味性。以下介绍的项目顺序并不代表其优劣,它们都是改善控制台程序体验的优秀选择。

Colorful.Console是一个NuGet包,它可以增强我们对控制台输出文字样式的控制。我们可以使用System.Drawing.Color中定义的颜色来定义控制台程序的配色方案。

using System;using System.Drawing;using Console = Colorful.Console;...Console.WriteLine("console in pink", Color.Pink);Console.WriteLine("console in default");

如何提升.NET控制台应用体验?

此外,Colorful.Console还允许我们使用FIGlet字体编写带颜色的ASCII码输出。

FigletFont font = FigletFont.Load("chunky.flf");Figlet figlet = new Figlet(font);Console.WriteLine(figlet.ToAscii("Belvedere"), ColorTranslator.FromHtml("#8AFFEF"));Console.WriteLine(figlet.ToAscii("ice"), ColorTranslator.FromHtml("#FAD6FF"));Console.WriteLine(figlet.ToAscii("cream."), ColorTranslator.FromHtml("#B8DBFF"));

如何提升.NET控制台应用体验?

这个输出结果完全就是黑客的梦想。我建议你访问colorful.console的官方网站,了解这个库能实现的所有效果,以更好地改善控制台程序的体验。

ConsoleTables是我(作者)自己编写的包,这里有点自卖自夸^.^。使用这个库,开发人员可以轻松地将一组对象以表格形式展示在控制台中。

static void Main(String[] args){    var table = new ConsoleTable("one", "two", "three");    table.AddRow(1, 2, 3)         .AddRow("this line should be longer", "yes it is", "oh");    table.Write();    Console.WriteLine();    var rows = Enumerable.Repeat(new Something(), 10);    ConsoleTable        .From(rows)        .Configure(o => o.NumberAlignment = Alignment.Right)        .Write(Format.Alternative);    Console.ReadKey();}

以前,谁不希望能在控制台中输出一个表格呢?

FORMAT: Default:--------------------------------------------------| one                        | two       | three |--------------------------------------------------| 1                          | 2         | 3     |--------------------------------------------------| this line should be longer | yes it is | oh    |--------------------------------------------------Count: 2FORMAT: Alternative:+----------------------------+-----------+-------+| one                        | two       | three |+----------------------------+-----------+-------+| 1                          | 2         | 3     |+----------------------------+-----------+-------+| this line should be longer | yes it is | oh    |+----------------------------+-----------+-------+

自从ConsoleTables发布以来,许多开发人员已经开发出自己的控制台表格库。有些甚至更好,你可以自行查找。

AppMall应用商店 AppMall应用商店

AI应用商店,提供即时交付、按需付费的人工智能应用服务

AppMall应用商店 56 查看详情 AppMall应用商店

ShellProgressBar和需要其他应用程序一样,控制台程序也可以执行长时间任务。ShellProgressBar是一个非常棒的库,使用它,你可以在控制台输出一些非常惊艳的进度条。而且,ShellProgressBar支持进度条的嵌套使用。例如,如下GIF动画中展示的效果。

如何提升.NET控制台应用体验?

ShellProgressBar使用起来非常直接。

const int totalTicks = 10;var options = new ProgressBarOptions{    ProgressCharacter = '─',    ProgressBarOnBottom = true};using (var pbar = new ProgressBar(totalTicks, "Initial message", options)){    pbar.Tick(); //will advance pbar to 1 out of 10.    //we can also advance and update the progressbar text    pbar.Tick("Step 2 of 10");}

谢谢你,Martijin Larrman,这真的是一个非常好用的库。

GUI.CS是一个非常棒的控制台UI工具包。它提供了一个功能完善的工具箱,开发人员可以使用它构建早期控制台常见的一种用户界面。

如何提升.NET控制台应用体验?

这个UI工具箱提供了如下控件:

ButtonsLabelsText EntryText ViewUser InputsWindowsMenusScrollBars

使用它,开发人员可以在控制台应用中实现一些令人难以置信的效果。这个库是由Miguel De Icaza编写的,是控制台技术的巅峰之作,下面让我们一起来看一个实例程序。

using Terminal.Gui;class Demo {    static void Main ()    {        Application.Init ();        var top = Application.Top;        // 创建顶级窗体        var win = new Window ("MyApp") {            X = 0,            Y = 1, // 预留菜单行            // 使用Dim.Fill(), 它可以自动调整窗体大小,实现自适应,而无需手动调整            Width = Dim.Fill (),            Height = Dim.Fill ()        };        top.Add (win);        // 创建一个菜单        var menu = new MenuBar (new MenuBarItem [] {            new MenuBarItem ("_File", new MenuItem [] {                new MenuItem ("_New", "Creates new file", NewFile),                new MenuItem ("_Close", "", () => Close ()),                new MenuItem ("_Quit", "", () => { if (Quit ()) top.Running = false; })            }),            new MenuBarItem ("_Edit", new MenuItem [] {                new MenuItem ("_Copy", "", null),                new MenuItem ("C_ut", "", null),                new MenuItem ("_Paste", "", null)            })        });        top.Add (menu);        var login = new Label ("Login: ") { X = 3, Y = 2 };        var password = new Label ("Password: ") {            X = Pos.Left (login),            Y = Pos.Top (login) + 1        };        var loginText = new TextField ("") {            X = Pos.Right (password),            Y = Pos.Top (login),            Width = 40        };        var passText = new TextField ("") {            Secret = true,            X = Pos.Left (loginText),            Y = Pos.Top (password),            Width = Dim.Width (loginText)        };        // 添加一些其他控件        win.Add (            // 这是我最喜欢的布局            login, password, loginText, passText,            // 这里使用了绝对定位            new CheckBox (3, 6, "Remember me"),            new RadioGroup (3, 8, new [] { "_Personal", "_Company" }),            new Button (3, 14, "Ok"),            new Button (10, 14, "Cancel"),            new Label (3, 18, "Press F9 or ESC plus 9 to activate the menubar")        );        Application.Run ();    }}

总结:作为开发人员,我们可以沉迷于GUI,这是理所当然的,它使我们更有生产力。但是控制台应用程序同样也很强大。下次当你编写控制台程序的时候,你可以考虑使用以上介绍的某些库,以便为你的控制台应用增添色彩。

以上就是如何提升.NET控制台应用体验?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/606189.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月10日 22:44:49
下一篇 2025年11月10日 22:50:01

相关推荐

  • 印度富豪拥抱加密货币:数字投资的新时代

    印度顶级投资者正将目光投向加密货币,受比特币价格飙升和全球市场信心增强的影响,国内交易所纷纷报告高净值人群(hni)的参与度大幅提升。 印度富豪拥抱加密货币:数字投资新时代 随着比特币价格持续走高,全球对数字资产的信心不断增强,印度富裕阶层正积极进入加密货币领域。多家本土交易所表示,高净值个人和家族…

    2025年12月8日
    000
  • dYdX的通缩引擎重新启动:代币销毁及其意义

    dydx 推动通缩机制,大规模销毁代币。探讨这一举措对代币经济、网络安全和市场信心的影响。 dYdX 正通过战略性代币销毁与回购加速发展。了解这种通缩策略在 DeFi 领域带来的变化。 dYdX 销毁 1570 万美元代币:一次强有力的通缩行动 在经历一段时间的沉寂后,dYdX 的奖励金库再次启动,…

    2025年12月8日
    000
  • BlockDAG、ICP 和 SEI:探索加密货币领域

    探索 blockdag、icp 与 sei 的最新趋势:从 blockdag 的预售成功,到 icp 的韧性表现,再到 sei 对 defi 的专注。 BlockDAG、ICP 与 SEI:穿越加密货币格局 加密货币市场正迎来新一轮热潮,BlockDAG、Internet Computer(ICP)…

    2025年12月8日
    000
  • FloppyPepe:这种模因币能否以15,800%的回报率助你成为加密货币百万富翁?

    floppypepe 凭借其“模因+实用”的创新模式引发了广泛关注,对于早期投资者来说,它或许提供了一个通过高达 15,800% 的投资回报率(roi)成为加密百万富翁的机会。 FloppyPepe:这款模因币能让你成为加密百万富翁,并带来 15,800% 的回报吗? 随着模因币再度兴起,Flopp…

    2025年12月8日
    000
  • BlockDAG、Hedera HBAR、Bittensor TAO:加密货币的下一个大事件?

    探索 blockdag、hedera hbar 与 bittensor tao 在塑造加密货币未来方面的创新突破 加密世界永不停歇,创新者亦然。BlockDAG、Hedera HBAR 和 Bittensor TAO 正在以各自独特的方式推动行业变革。让我们深入了解它们为何成为焦点。 BlockDA…

    2025年12月8日
    000
  • FloppyPepe:下一个造就百万富翁的加密货币?投资回报潜力与模因币的演变

    随着加密货币市场价值持续攀升,floppypepe 成为了备受瞩目的潜在百倍币,它巧妙融合了迷因文化与 web3 的实用价值。它是否会成为下一个“狗狗币”或“pepe”? 加密市场正迈向 4 万亿美元的门槛,虽然比特币依旧主导涨势,但迷因币正成为市场焦点。FloppyPepe(FPPE)凭借其强劲的…

    2025年12月8日
    000
  • 以太坊的企业热潮:ETH 觊觎王座?

    以太坊能否挑战比特币霸主地位?企业拥抱、通证化趋势与市场情绪升温预示eth或将迎来爆发 关于以太坊(ETH)的讨论热度持续攀升。随着企业层面的广泛接纳和多项市场指标走强,ETH是否有望取代比特币成为加密市场主导力量?我们一起来剖析推动这一趋势的关键因素。 企业拥抱以太坊:颠覆行业格局的关键 Erns…

    2025年12月8日
    000
  • 币圈牛市未来:驾驭加密货币领域

    加密货币牛市前景分析:把握数字资产新机遇 加密市场正迎来新一轮关注!围绕“加密货币、牛市、未来”的讨论热度持续上升,市场展现出潜在上升趋势,同时监管格局也在逐步调整。让我们共同探索影响加密货币发展进程的关键因素。 历史的启示:是否会再现往日辉煌? 最新市场数据显示,当前市场状况与2017年比特币暴涨…

    2025年12月8日
    000
  • 韩国稳定币激增:Web3创新热潮升温

    韩国web3生态崛起:稳定币革新带动黑客马拉松、ai融合与政策扶持,这是数字金融的未来方向吗? 韩国稳定币热潮:Web3创新持续升温 稳定币、Web3与韩国的结合正展现出前所未有的活力!从创新的黑客马拉松到人工智能驱动的应用,韩国的数字资产领域正快速推进。让我们深入探讨这些关键动态及其对金融未来的影…

    2025年12月8日
    000
  • BlockDAG预售飙升至3.43亿美元:加密货币领域的变革者?

    blockdag预售成功突破3.43亿美元,预示着加密市场正朝着实用性与创新性的方向迈进。它会是下一个大事件吗? BlockDAG预售:突破3.43亿美元的里程碑 加密社区对BlockDAG的关注正在持续升温,其预售金额已经突破3.43亿美元,显示出市场对该项目的高度期待。究竟是什么推动了这股热潮?…

    2025年12月8日
    000
  • 以太坊ETH24小时价格走势app 实时k线行情图表免费软件

    您是否在寻找一款能够实时追踪以太坊(ETH)价格波动、提供专业K线图表分析的得力助手?一款优秀的行情软件不仅能帮助您洞察市场先机,更能让您的投资决策有据可依。这款应用专为数字货币爱好者设计,集行情查看与交易功能于一体,是您驰骋加密世界的理想伙伴。 本文将为您提供该app的官方正版下载渠道,确保您获取…

    2025年12月8日
    000
  • 以太坊实时行情k线app 最新ETH价格走势今日分析app

    在数字货币市场中,以太坊(ETH)作为核心资产之一,其价格的每一次波动都牵动着无数投资者的心。想要精准把握市场脉搏,抓住每一个投资良机,一款专业、实时的行情分析工具不可或缺。这款应用不仅为您提供最前沿的ETH价格走势和K线分析,更集成了多种主流数字货币的交易功能,助您在加密世界中运筹帷幄,轻松实现投…

    2025年12月8日
    000
  • OpenFundNet、实用型代币、众筹成功:一个新时代?

    探索 openfundnet 的实用型代币 ofnt 如何以其创新方法、透明机制和社区驱动的生态系统重塑众筹模式。 OpenFundNet、实用代币、众筹成功:一个新时代的来临? OpenFundNet(OFNT)的崛起正在改变众筹领域的格局。它以实用性和社区参与为核心,为创新融资提供了全新的视角。…

    2025年12月8日
    000
  • 比特币、FloppyPepe 与投资回报潜力:抓住下一波加密货币浪潮

    比特币强势回归,点燃模因币热潮!floppypepe 会是下一个狗狗币,带来巨额回报吗?探索趋势与洞察。 比特币、FloppyPepe 与投资回报潜力:抓住下一波加密浪潮 比特币价格的强劲上涨正在推动诸如 FloppyPepe(FPPE)这类模因币的关注度上升。FPPE 是否能够带来下一轮丰厚的回报…

    2025年12月8日
    000
  • Bittensor、去中心化人工智能与数字资产:一个新时代

    探索 bittensor 与去中心化 ai 的崛起,深入了解数字资产策略与市场趋势。了解 tao 如何塑造未来。 Bittensor、去中心化 AI 与数字资产:迈向新纪元 在人工智能与区块链技术迅猛发展的浪潮中,Bittensor 正崭露头角,成为连接去中心化 AI 与前沿数字资产模式的重要平台。…

    2025年12月8日
    000
  • 比特币实时行情价格查询app 比特币今日k线走势分析

    您是否在寻找一款集实时行情、专业K线分析与便捷交易于一体的强大工具?这款应用不仅能让您轻松查询比特币等上千种数字货币的实时价格,还能深入分析历史走势,助您做出更明智的投资决策。 为了确保您使用的是正版应用,保障您的资产安全,本文为您提供了官方app的直接下载渠道。点击下方的下载链接,即可获取最新版本…

    2025年12月8日
    000
  • PEPE币最新k线走势图app PEPE24小时价格动态实时分析

    想要精准把握PEPE币的每一次价格脉动,抓住每一个潜在的投资良机吗?在这个瞬息万变的数字货币世界里,一款专业且高效的K线走势图APP是您不可或缺的制胜利器。它不仅能帮助您实时洞察PEPE币的24小时价格动态,更能提供深度分析工具,助您在复杂的市场环境中做出更明智的投资决策,抢占先机。 本文为您准备了…

    2025年12月8日
    000
  • 买虚拟货币被套住怎么办?新手止损策略盘点

    刚进入币圈的新手,常常在一轮行情下跌中“被套牢”,眼看账户缩水,却不知道该不该止损。其实,如何处理被套,是投资中极关键的技能。 第一步:冷静评估是否真的被套 很多人买入币价刚回调就慌张,其实并不算“套牢”。判断标准应是:币价跌幅超20%且短期无反弹迹象。这时可判断为阶段性被套。 第二步:止损or补仓…

    2025年12月8日
    000
  • 买卖虚拟币能实现财务自由吗?现实与幻想对比

    很多人入圈的初衷,是想通过虚拟币实现“财务自由”,但币圈到底是不是通往财富的捷径?这其中既有真实案例,也有不少幻想泡沫。 现实一:暴富可能存在,但极其稀有 确实有早期投资者靠比特币、以太坊等主流币实现了千万资产,但这类成功案例多发生在2013-2020年之间,随着市场逐渐成熟,暴涨暴富的概率在下降。…

    2025年12月8日
    000
  • 狗狗币价格暴涨:模因币狂热还是加密货币革命?

    狗狗币价格飙升引发市场热议:是炒作还是潜力? 狗狗币的热潮再度席卷而来!这枚以模因为灵感的加密货币价格大幅上涨,引发人们广泛讨论:这是否只是短暂的市场泡沫,还是预示着狗狗币以及整个加密资产领域的进一步发展? 狗狗币价格飞涨:时代情绪的风向标? 近期,狗狗币(Dogecoin)重回聚光灯下。受比特币因…

    2025年12月8日
    000

发表回复

登录后才能评论
关注微信