Исправить исключение NullReferenceException можно с помощью Null-условных операторов в c # 6 и написать меньше кода для обработки нулевых проверок.
Он используется для проверки нуля до выполнения доступа к члену (?. ) или index (? [).
Пример
var name = p?.Spouse?.FirstName;
эквивалентен:
if (p != null)
{
if (p.Spouse != null)
{
name = p.Spouse.FirstName;
}
}
В результате имя будет нулевым когда p равно null или когда p.Spouse имеет значение null.
В противном случае имени переменной будет присвоено значение p.Spouse.FirstName.
Для получения дополнительной информации: Операторы с нулевым условием
Console.BackgroundColor = ConsoleColor.Blue;
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine("White on blue.");
Да, это возможно следующим образом. Эти цвета можно использовать в консольном приложении для просмотра некоторых ошибок красного цвета и т. Д. ...
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
class Program
{
static void Main()
{
Console.BackgroundColor = ConsoleColor.Blue;
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine("White on blue.");
Console.WriteLine("Another line.");
Console.ResetColor();
}
}
Взято из здесь .
Да, это легко и понятно. Определите первые цвета по умолчанию.
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 возникает другая проблема, если вы хотите «сохранить» пользовательский интерфейс, потому что терминал имеет разные цвета для каждой оперативной системы.
Я создаю библиотеку, которая решает эту проблему с помощью текстового формата: цвета, выравнивание и многое другое. Вы можете использовать и вносить свой вклад.
Выше комментарии являются как твердыми ответами, однако обратите внимание, что они не являются потокобезопасными. Если вы пишете на консоль с несколькими потоками, изменение цветов добавит условие гонки, которое может создать какой-то странный вид вывода. Это легко исправить:
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();
}
}
}
Write
вызов будет искажен , а не . См. stackoverflow.com/questions/4812508/… . Это всего лишь порядок вызовов, которые не являются «безопасными».
– BatteryBackupUnit
17 October 2017 в 09:29