Код ниже отображает строку различными цветами.
Но это - много кода, чтобы ввести только для одной строки и повторить это на всем протяжении программы снова.
Как точно я могу упростить это, таким образом, я не должен писать тот же объем кода много раз?
Console.ForegroundColor = ConsoleColor.Cyan;
Console.Write(">>> Order: ");
Console.ResetColor();
Console.Write("Data");
Console.ForegroundColor = ConsoleColor.DarkGreen;
Console.Write("Parity");
Console.ForegroundColor = ConsoleColor.Cyan;
Console.Write(" <<<");
Есть ли любой способ сохранить... = Консоль. ForegroundColor = ConsoleColor. Голубой;?
"текст" + цвет? + "текст"; и т.д...
Любой вход ценил отношения.
Это не совсем понятно, что вы имеете в виду, но вы всегда можете создать вспомогательные методы:
public static void ColoredConsoleWrite(ConsoleColor color, string text)
{
ConsoleColor originalColor = Console.ForegroundColor;
Console.ForegroundColor = color;
Console.Write(text);
Console.ForegroundColor = originalColor;
}
Другая идея состоит в том, чтобы встроить что-то вроде escape-кодов ANSI , но они довольно обширны, а цвет - лишь небольшая их часть.
Поэтому я бы рекомендовал встраивать цветовые коды в выходные строки, используя раздел области частного использования Unicode (PUA) в базовой многоязычной плоскости (BMP) и базовый синтаксический анализатор / средство визуализации.
Кстати, настройки цвета консоли являются глобальными для процесса, поэтому, если несколько потоков генерируют цветной вывод, каждый блок должен быть окружен критической секцией, чтобы избежать «смешения цветов».
Поскольку вставлять в строку немного долго, я загрузил образец исходного кода на свой сайт.
Вот мой вклад, хотя и в Visual Basic:
Sub WriteColor(ByRef part1 As String, ByRef part2 As String)
Console.Write(part1)
Console.ForegroundColor = ConsoleColor.Green
Console.WriteLine(part2)
Console.ResetColor()
End Sub
Я называю приведенный выше код следующим образом:
WriteColor("DEBUGMODE INFO: SQL query statement result = ", result.ToString)
Зеленый цвет позволяет мне выбрать результат запроса во всех остальных отладках сообщения, которые я распечатываю. Надеюсь это поможет. Очевидно, было бы более полезным более общее решение, возможно, такое, которое допускает переменное количество аргументов, но даже этот конкретный код помогает мне избежать повторения и облегчает жизнь.