c\#콘 솔 에 컬러 문 자 를 출력 하 는 방법
예제 코드 는 다음 과 같다.
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 입 니 다.전 자 는 콘 솔 의 핸들 을 얻 고 후 자 는 콘 솔 의 텍스트 색 을 설정 합 니 다.순환 문 구 는 문자열 의 모든 문 자 를 다른 색 으로 설정 하고 하나씩 표시 하 며 최종 적 으로 한 줄 의 컬러 문자 가 됩 니 다.
코드 의 실제 용도 에 대해 서 는 콘 솔 에서 로 그 를 출력 할 때 도움 이 될 수 있 을 것 같 습 니 다.특히 서로 다른 유형의 로 그 를 눈 에 띄 게 표시 해 야 한다.예 를 들 어 오류,경고,정보 형식의 로 그 를 각각 빨간색,노란색 과 일반적인 흰색 으로 구별 할 수 있다.