国产探花免费观看_亚洲丰满少妇自慰呻吟_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。前者取得控制臺的句柄,后者設置控制臺的文字顏色。

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 兰溪市| 老河口市| 榆林市| 阳朔县| 垦利县| 迁西县| 尼玛县| 巨野县| 屏边| 呈贡县| 西城区| 瑞昌市| 恩平市| 东兴市| 罗山县| 左权县| 荃湾区| 福建省| 博乐市| 桃江县| 泾源县| 临西县| 泰和县| 大埔县| 宣汉县| 化州市| 宁国市| 东莞市| 子长县| 富平县| 定兴县| 淳化县| 阿尔山市| 昌黎县| 衡山县| 贡觉县| 凤庆县| 韶关市| 沙河市| 四平市| 台湾省|