国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

c#在控制臺輸出彩色文字的方法

2020-01-24 03:32:58
字體:
來源:轉載
供稿:網友

“Hello World!”的程序寫過不少,不過都是在黑色背景的控制臺上顯示白色的文字。這次決定寫點特別的,讓“Hello World!”變成彩色的文字。

示例代碼如下:

復制代碼 代碼如下:

using System;
using System.Runtime.InteropServices;

[assembly:CLSCompliant(true)]
namespace ColorConsole
{
    public sealed class HelloWorld
    {
        private HelloWorld() { }

        public static void Main()
        {
            const UInt32 STD_OUTPUT_HANDLE = unchecked((UInt32)(-11));
            IntPtr consoleHandle = NativeMethods.GetStdHandle(STD_OUTPUT_HANDLE);

            string s = "Hello World!";

            for (int i = 0; i < s.Length; i++)
            {
                NativeMethods.SetConsoleTextAttribute(consoleHandle, (ushort)(i + 1));
                Console.Write(s[i]);
            }

            Console.ReadLine();
        }
    }

    class NativeMethods
    {
        private NativeMethods() { }

        [DllImport("Kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)]
        public static extern IntPtr GetStdHandle(UInt32 type);

        [DllImport("Kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)]
        [return: MarshalAs(UnmanagedType.U1)]
        public static extern bool SetConsoleTextAttribute(IntPtr consoleHandle, ushort attributes);  
    }
}

主要用到的方法是GetStdHandle與SetConsoleTextAttribute。前者取得控制臺的句柄,后者設置控制臺的文字顏色。

循環語句中將字符串的每個字符設置為不同的顏色,逐一顯示出來,最終成為一串彩色的文字。

至于代碼的實際用途嗎,我想在控制臺上輸出日志的時候可能會有作用。尤其是要醒目地顯示不同類型日志的場合下,比如可以將錯誤,警告和信息類型的日志分別用紅色,黃色與通常的白色區別開來。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 嘉禾县| 江陵县| 房产| 昭通市| 凭祥市| 舟山市| 阿克| 嘉祥县| 甘孜| 澄迈县| 伊通| 栖霞市| 涪陵区| 周宁县| 高州市| 新源县| 哈巴河县| 新闻| 平山县| 杂多县| 喜德县| 万安县| 依安县| 漠河县| 乐山市| 乌拉特前旗| 军事| 沽源县| 花垣县| 石楼县| 和静县| 新津县| 衢州市| 玉树县| 洛南县| 吴忠市| 汝城县| 贡嘎县| 枣强县| 醴陵市| 大理市|