Я тоже сталкивался с этим, и единственный обходной путь, который я нашел, - это использовать значения NULL.
public void log(String msg, Color? c = null)
{
loggerText.ForeColor = c ?? Color.Black;
loggerText.AppendText("\n" + msg);
}
Другой возможный синтаксис:
loggerText.ForeColor = c.GetValueOrDefault(Color.Black);
Не указывайте цвет. Вместо этого задайте "уровень ошибки" и установите соответствие между каждым уровнем ошибки и значением цвета. Таким образом, 0 и ниже может быть черным, затем 1 = янтарный, >2 = красный. Не нужно беспокоиться о значениях по умолчанию и/или о том, что значение не указано.
Вы можете проверить, является ли Color Color.Empty (значение по умолчанию: default (Color)
) или использовать значение, допускающее значение NULL. и проверьте значение null.
public void log(String msg, Color? c = null) { ... }