Рассмотрите этот сценарий.C#: автоматическое преобразование из enum в класс
- Существует
struct
Color
(написан кем-то еще) - Существует
enum ColorCode
, который реализует HTML имени цветовые коды. - Там есть статическая функция, которая преобразует
ColorCode
вColor
Я хочу быть в состоянии сделать это:
Color tmp = ....; tmp = ColorCode.Aqua;
Как я могу это сделать без копирования вставки текста в 140 раз?
Мне все равно, что ColorCode
is (enum, class, whatever), если эта линия работает.
Проблема:
C# не позволяет мне определить операторы перечислений. У меня также нет макросов, чтобы сделать приятную человеко-читаемую таблицу в пределах ColorCode
.
Ограничение:
ColorCode
Содержание должно быть доступно как int
с, но должно быть назначаемыми/конвертируемые в Color
.
Кодовые фрагменты:
public enum ColorCode{
AliceBlue = 0xF0F8FF,
AntiqueWhite = 0xFAEBD7,
Aqua = 0x00FFFF,
Aquamarine = 0x7FFFD4,
Azure = 0xF0FFFF, ///Repeat 140 times
...
}
public static Color colorFromCode(ColorCode code){
....
}
Спасибо за ответив. Ваше предложение тоже хорошее, но, к сожалению, я не могу сразу принять два ответа, и на данный момент я пошел с предложением Джона Скита. Тем не менее, спасибо за эту идею. – SigTerm