Console也要美颜了,来给Console添色彩
我们在开发过程中,经常需要将信息用不同的颜色标记出来,这可以让我们快速关注到重点信息。想必大家都知道,可以通过Console. ForegroundColor设置输出文字的颜色,背景颜色可以通过Console. BackgroundColor去改变。但实际使用起来却非常繁琐。每输出一段文字就得改变一次颜色,否则整版都是一个色,不能突出重点。
最近发现一个叫Shotgun.ColorConsole的库类,可以避免这种糟糕的情况 。ColorConsole使用颜色标记的方式去控制Console的颜色输出,从而避免了像原生的Console一样反复修改颜色属性。例如:
Shotgun.ColorConsole.ColorConsole.WriteLine("$R The foreground color is red");
等效于:
var old=Console.ForegroundColor;
Console.ForegroundColor=Console.Red;
Console.WriteLine("The foreground color is red");
Console.ForegroundColor=old;
通过以上代码的展示相信你已经猜到了,$R是用来控制输出文字的颜色。事实上也的确如此。在默认情况下使用“$”标识修改前景色,“@”标识修改背影色,紧跟在标记后面一个字符则表示颜色值,如上例中的R则代表ConsoleColor.Red。
ColorConsole的颜色控制语法有两种,一种是整体颜色标识;另一种则是区间颜色标识。
整体颜色标识:
这种标识没有结束标记,通常自标识起至结束颜色都是一样的,除非又使了其他的颜色标识。本文第一个示例使用的就是这种语法。
区间颜色标识:
在整体颜色标识基础上增加一对中括号就成了区间颜色标识。中括号内的文字将以指定的颜色显示,括号外的文字将用原来的颜色显示。而且括号还可以多层的嵌套。
//区间颜色输出控制
ColorConsole.WriteLine("今天是:$G[{0:yyyy-MM-dd}],时间是:@y[{0:HH:mm:ss}]",DateTime.Now);

ColorConsole还提供了注入方法,这可以让System.Console支持这种有颜色的语法。
ColorConsole.Inject();
Console.WriteLine("@w$R Hello $G[Color] @B[Console]!");

颜色语法中的色值与ConsoleColor按以下关系进行映射(小写表示Drak Color):
- r => ConsoleColor.DarkRed
- R => ConsoleColor.Red
- g => ConsoleColor.DarkGreen
- G => ConsoleColor.Green
- b => ConsoleColor.DarkBlue
- B => ConsoleColor.Blue
- c => ConsoleColor.DarkCyan
- C => ConsoleColor.Cyan
- y => ConsoleColor.DarkYellow
- Y => ConsoleColor.Yellow
- m => ConsoleColor.DarkMagenta
- M => ConsoleColor.Magenta
- w => ConsoleColor.Gray (Dark White)
- W => ConsoleColor.White
- a => ConsoleColor.DarkGray
- A => ConsoleColor.Black
有需要的同学可以通过以下两种方式获取:
GitHub:https://github.com/cbanor/ColorConsole
NuGet - Package Manager : Install-Package Shotgun.ColorConsole
Console也要美颜了,来给Console添色彩的更多相关文章
- Node.js:console模块
console模块提供了一个简单的调试功能,类似与web浏览器的javscript console. 下面简单介绍下该模块的使用以及用途,我使用了ES6的模版字符串(使用反引号标识),有兴趣的可以去了 ...
- Chrome浏览器调试,console简述
作为一个前端开发者,不可避免的需要进行各种各样的调试. 在谷歌浏览器出来以前,火狐的firebug是特别有名的一款调试工具,不过自从谷歌浏览器诞生以来,其自带的开发者工具足以媲美firebug,某种程 ...
- 以 Console 方式运行、调试、编译 .Net 编写的 Windows 服务
经常看到一些人在调试 Windows 服务时,很执著的在附加进程后调试!其实 .Net 编写的 Windows 应用程序,包括 Windows 服务都可以编译成 Console 程序!甚至于 ASP. ...
- console 输出信息美化
不久前在一些前端的网站上看到的效果,以前觉得console只是拿来做做调试,不过现在看到别人网站的console美化效果,这个还可以作为一种网站个性来显示的.. 以%c开头,后面的文字就打印的信息,后 ...
- javascript的console.log用法
f1.html代码 <iframe id="frame2" name="frame1" src="ww.html"></i ...
- Console app 里的依赖注入及其实例生命周期
依赖注入是 ASP.NET Core 里的核心概念之一,我们平常总是愉快地在Startup类的ConfigureServices方法里往IServiceCollection里注册各种类型,以致有一些同 ...
- js控制台输出console
介绍: js的console你可以在firefox的firedbug或者ie和google的f12调试模式下看到,这些主流浏览器的调试模式的控制可以输出一些信息,你的一些js代码测试可以直接在cons ...
- console对象-转
console对象 来自<JavaScript 标准参考教程(alpha)>,by 阮一峰 目录 开发者工具 console对象 console.log() console.debug() ...
- Chrome开发工具之Console
Chrome开发工具-Console 看了别人的博客,才发现在百度主页用开发工具“Console”可以看到百度的招聘信息 前端调试工具可以按F12打开,谷歌的开发工具中的Console面板可以查看错误 ...
随机推荐
- C程序中可怕的野指针
一.疑问点指针是C语言一个很强大的功能,同时也是很容易让人犯错的一个功能,用错了指针,轻者只是报个错,重者可能整个系统都崩溃了.下面是大家在编写C程序时,经常遇到的一种错误的使用方法,也许在你的学习和 ...
- 构建工具--glup如何压缩,丑化代码
目录 为什么使用 实现 为什么使用 最近在迭代公司的项目,发现项目有如下缺点: 代码没有压缩,js文件,内存大,放在服务器上占空间: 源代码没有混淆或者丑化处理,本公司的程序员写出来的代码和高质量逻辑 ...
- Ui自动化测试上传文件方法都在这里了
前言 实施UI自动化测试的时候,经常会遇见上传文件的操作,那么对于上传文件你知道几种方法呢?今天我们就总结一下几种常用的上传文件的方法,并分析一下每个方法的优点和缺点以及哪种方法效率,稳定性更高 被测 ...
- python函数知识一 函数初始、定义与调用、返回值、参数和函数的好处+菜中菜
第四章 函数 1.函数初识: def :关键字 -- 定义 函数名:和变量的定义方式一样 (): 用于参数传递,: 形参:函数的定义中()内的是形参 实参:调用的()内是实参 传参:调用时将实参传递给 ...
- 调用另一个进程,createprocess返回值正确,但被调进程连入口函数都没进入。
1.单独运行被调进程(提示atl不匹配). 2.编译选项设置为不依赖atl即可. 3.启发:能单独测试的,先单独测试.
- WMI_COM_API
Win32_Processor // CPU 处理器 Win32_PhysicalMemory // 物理内存 Win32_Keyboard // 键盘 Win32_PointingDevice // ...
- 万能RecyclerView的数据适配器BaseRecyclerViewAdapterHelper
今天楼主才发现github上有这么一个好用的开源代码,充满好奇心的楼主马上使用了,特地分享给大家. 此项目的github地址: https://github.com/CymChad/BaseRecyc ...
- 2019牛客多校第二场H-Second Large Rectangle
Second Large Rectangle 题目传送门 解题思路 先求出每个点上的高,再利用单调栈分别求出每个点左右两边第一个高小于自己的位置,从而而得出最后一个大于等于自己的位置,进而求出自己的位 ...
- 盘一盘 synchronized (二)—— 偏向锁批量重偏向与批量撤销
在本文讲解之前,先来简单了解一下为什么会有批量重偏向和批量撤销. 批量重偏向:当一个线程创建了大量对象并执行了初始的同步操作,后来另一个线程也来将这些对象作为锁对象进行操作,会导偏向锁重偏向的操作 ...
- DedeCms常用内容调用标签实例大全
一.调用顶级栏目标签 <a href="{dede:global.cfg_cmsurl/}/" class="ahov">首页</a> ...