У меня есть перечисление, которое имеет различные цвета в нем. Я хотел бы передать некоторую функцию int
и имейте его, возвращают название цвета, которое находится в перечислении в том положении.
Что путь состоит в том, чтобы сделать это?
Если вы заботитесь о производительности, остерегайтесь использовать любое из приведенных здесь предложений: все они используют отражение для получения строкового значения перечисления. Если строковое значение - это то, что вам больше всего нужно, лучше использовать строки. Если вы все еще хотите обеспечить безопасность типов, определите класс и коллекцию для определения ваших "перечислений", и пусть класс передает свое имя в переопределении ToString().
Другой вариант - использовать статический метод GetName
:
Enum.GetName(typeof(MyEnumClass), n);
Преимущество этого метода в том, что код говорит сам за себя. Должно быть очевидно, что он возвращает имя перечисления (что может быть немного трудно понять, когда вы используете, например, метод ToString
).
Если ваше перечисление с цветами имеет имя MyColorEnumName
, попробуйте
Enum.GetName(typeof(MyColorEnumName), enumColorValue)