Добрый день. На форме присутствует палитра. Когда тыкаю на нее и выбираю цвет, а затем кликаю на форме, то пиксель, на котором тыкнул толжен закрасится в соответсвующий цвет. Кроме того в массив записывается объект с параметрами: координаты x, y и цвет. Таким образом, через switch я хочу проверить цвет который выбран из палитры и записать его в массив. Грубо говоря если цвет выбран черный:
| Код | Color m_paintPlaceColor = Color.Black;
switch (m_paintPlaceColor) { case Color.Black: absPaintPlace[x, y].colorObject = eColorObject.BLACK; break; case Color.White: absPaintPlace[x, y].colorObject = eColorObject.WHITE; break; default: throw new ArgumentOutOfRangeException(); }
|
где
| Код | public enum eColorObject { WHITE, BLACK }
|
Но оператор switch ругается, что значение должно быть целочисленным, а в case должно быть постоянное значение. Пришлось сделать так:
| Код | if (m_paintPlaceColor == Color.Black) { absPaintPlace[x, y].colorObject = eColorObject.BLACK; } if (m_paintPlaceColor == Color.White) { absPaintPlace[x, y].colorObject = eColorObject.WHITE; }
|
Но это не красиво и не удобно, т.к. у меня выбор идет не между 2мя цветами, а между 7ю. Возможно ли как-нибудь использовать оператор switch?
|