작은 명령 줄 도구를 작성하면 다른 색상으로 출력하는 것이 좋습니다. 이게 가능해?
답변
예. 이 기사를 참조 하십시오 . 다음은 그 예입니다.
Console.BackgroundColor = ConsoleColor.Blue;
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine("White on blue.");
답변
class Program
{
static void Main()
{
Console.BackgroundColor = ConsoleColor.Blue;
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine("White on blue.");
Console.WriteLine("Another line.");
Console.ResetColor();
}
}
여기 에서 찍은 .
답변
위의 의견은 모두 확실한 반응이지만 스레드 안전하지는 않습니다. 여러 스레드를 사용하여 콘솔에 쓰는 경우 색상을 변경하면 경이로운 출력이 생길 수있는 경쟁 조건이 추가됩니다. 그래도 고치는 것은 간단합니다.
public class ConsoleWriter
{
private static object _MessageLock= new object();
public void WriteMessage(string message)
{
lock (_MessageLock)
{
Console.BackgroundColor = ConsoleColor.Red;
Console.WriteLine(message);
Console.ResetColor();
}
}
}
답변
내가 만든 작은 플러그인 (볼 NuGet 추가 할 수 있습니다) 어떤 (터미널에서 지원하는 경우) 고전 솔루션의 제한없이, 콘솔 출력에 색상을.
String
객체 를 확장하여 작동 하며 구문은 매우 간단합니다.
"colorize me".Pastel("#1E90FF");
전경색과 배경색이 모두 지원됩니다.
답변
예, 쉽고 가능합니다. 첫 번째 기본 색상을 정의하십시오.
Console.BackgroundColor = ConsoleColor.Black;
Console.ForegroundColor = ConsoleColor.White;
Console.Clear();
Console.Clear()
새로운 콘솔 색상을 설정하는 것이 중요합니다. 이 단계를 수행하지 않으면로 값을 요청할 때 결합 된 색상을 볼 수 있습니다 Console.ReadLine()
.
그런 다음 각 인쇄물의 색상을 변경할 수 있습니다.
Console.BackgroundColor = ConsoleColor.Black;
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Red text over black.");
프로그램을 완료하면 완료시 콘솔 색상 재설정을 기억하십시오.
Console.ResetColor();
Console.Clear();
netcore를 사용하면 터미널마다 각 운영 체제마다 색상이 다르기 때문에 사용자 환경을 “보존”하려는 경우 또 다른 문제가 있습니다.
텍스트 형식 (색상, 정렬 등) 으로이 문제를 해결하는 라이브러리를 만들고 있습니다. 자유롭게 사용하고 기여하십시오.
https://github.com/deinsoftware/colorify/ 및 NuGet 패키지 로도 제공
답변
위의 답변에 모두 사용 Console.WriteLine
: 같은 텍스트 줄에서 색상을 변경 하려면 다음과 같이 작성하십시오.
Console.Write("This test ");
Console.BackgroundColor = bTestSuccess ? ConsoleColor.DarkGreen : ConsoleColor.Red;
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine((bTestSuccess ? "PASSED" : "FAILED"));
Console.ResetColor();
답변
예, 다음과 같이 가능합니다. 이 색상은 콘솔 응용 프로그램에서 빨간색 등의 일부 오류를 볼 수 있습니다.
Console.BackgroundColor = ConsoleColor.Blue;
Console.ForegroundColor = ConsoleColor.White;//after this line every text will be white on blue background
Console.WriteLine("White on blue.");
Console.WriteLine("Another line.");
Console.ResetColor();//reset to the defoult colour