Ответ 1
Color.Black
является статичным, а не постоянным, поэтому нет, вы не можете этого сделать.
Чтобы использовать значение по умолчанию, вы можете сделать параметр нулевым (Color?
), а если он равен null, установите его на черный.
Вот примерная функция:
public void DrawSquare(int x, int y, Color boxColor = Color.Black)
{
//Code to draw the square goes here
}
Компилятор продолжает давать мне ошибку: Default parameter value for 'boxColor'must be a compile-time constant
Я пробовал
Color.Black,
Color.FromKnownColor(KnownColor.Black), and
Color.FromArgb(0, 0, 0)
Как сделать Color.Black цветом по умолчанию? Кроме того, я не хочу использовать строку Black
, чтобы указать ее (что я знаю, будет работать). Я хочу значение Color.Black
.
Color.Black
является статичным, а не постоянным, поэтому нет, вы не можете этого сделать.
Чтобы использовать значение по умолчанию, вы можете сделать параметр нулевым (Color?
), а если он равен null, установите его на черный.
Сделайте это:
void foo(... Color boxColor = default(Color))
{
if(object.Equals(boxColor, default(Color))) boxColor = Color.Black;
// ...
}
Что не так, если держать его простым?
public void DrawSquare(int x, int y)
{
DrawSquare(x,y,Color.Black);
}
public void DrawSquare(int x, int y, Color color)
{
// Do your thing.
}