.NetCore·控制台输出自定义颜色的Helper

阅文时长 | 0.83分钟 字数统计 | 1334.4字符
主要内容 | 1、引言&背景 2、测试方法及解决方案 3、声明与参考资料
『.NetCore·控制台输出自定义颜色的Helper』
编写人 | SCscHero 编写时间 | 2021/7/24 PM7:34
文章类型 | 系列 完成度 | 已完成
座右铭 每一个伟大的事业,都有一个微不足道的开始。

一、引言&背景   完成度:100%

a) 应对问题

在.Net/C#程序中,如何输出类似于如图的带不同颜色的输出?

b) 应对场景

在开发环境下控制台做相关提示,如连接数据库、网关、配置中心失败,可以返回一个显眼的红色Error。

c) 解决原理&方法

临时更改Console类下的ForegroundColor成员的枚举值。

二、测试方法及解决方案   完成度:100%

a) 测试方式

using System;

namespace _00057._Console_dotnet5_Console控制台输出不同颜色Helper
{
    class Program
    {
        static void Main(string[] args)
        {

            ConsoleHelper.WriteErrorLine("Error");
            ConsoleHelper.WriteSuccessLine("Succeed");
            ConsoleHelper.WriteInfoLine("CustomColor",ConsoleColor.Cyan);
            ConsoleHelper.WriteWarningLine("Warning");

            "expandMethod".WriteInfoLine(ConsoleColor.Red);
            Console.ReadKey();

        }
    }
}

b) 实现代码

using System;

namespace _00057._Console_dotnet5_Console控制台输出不同颜色Helper
{
    public static class ConsoleHelper
    {
        static void WriteColorLine(string str, ConsoleColor color)
        {
            ConsoleColor currentForeColor = Console.ForegroundColor;
            Console.ForegroundColor = color;
            Console.WriteLine(str);
            Console.ForegroundColor = currentForeColor;
        }

        /// <summary>
        /// 打印错误信息
        /// </summary>
        /// <param name="str">待打印的字符串</param>
        /// <param name="color">想要打印的颜色</param>
        public static void WriteErrorLine(this string str, ConsoleColor color = ConsoleColor.Red)
        {
            WriteColorLine(str, color);
        }

        /// <summary>
        /// 打印警告信息
        /// </summary>
        /// <param name="str">待打印的字符串</param>
        /// <param name="color">想要打印的颜色</param>
        public static void WriteWarningLine(this string str, ConsoleColor color = ConsoleColor.Yellow)
        {
            WriteColorLine(str, color);
        }
        /// <summary>
        /// 打印正常信息
        /// </summary>
        /// <param name="str">待打印的字符串</param>
        /// <param name="color">想要打印的颜色</param>
        public static void WriteInfoLine(this string str, ConsoleColor color = ConsoleColor.White)
        {
            WriteColorLine(str, color);
        }
        /// <summary>
        /// 打印成功的信息
        /// </summary>
        /// <param name="str">待打印的字符串</param>
        /// <param name="color">想要打印的颜色</param>
        public static void WriteSuccessLine(this string str, ConsoleColor color = ConsoleColor.Green)
        {
            WriteColorLine(str, color);
        }

    }
}

三、声明与参考资料   完成度:100%

原创博文,未经许可请勿转载。

如有帮助,欢迎点赞、收藏、关注。如有问题,请评论留言!如需与博主联系的,直接博客私信SCscHero即可。

posted on 2021-07-24 19:49  SCscHero  阅读(1142)  评论(0编辑  收藏  举报

导航