Получите перечислимое имя, когда значение будет известно

У меня есть перечисление, которое имеет различные цвета в нем. Я хотел бы передать некоторую функцию int и имейте его, возвращают название цвета, которое находится в перечислении в том положении.

Что путь состоит в том, чтобы сделать это?

37
задан WedTM 25 July 2010 в 03:29
поделиться

4 ответа

return ((MyEnumClass)n).ToString();
74
ответ дан 27 November 2019 в 04:01
поделиться

Если вы заботитесь о производительности, остерегайтесь использовать любое из приведенных здесь предложений: все они используют отражение для получения строкового значения перечисления. Если строковое значение - это то, что вам больше всего нужно, лучше использовать строки. Если вы все еще хотите обеспечить безопасность типов, определите класс и коллекцию для определения ваших "перечислений", и пусть класс передает свое имя в переопределении ToString().

2
ответ дан 27 November 2019 в 04:01
поделиться

Другой вариант - использовать статический метод GetName:

Enum.GetName(typeof(MyEnumClass), n);

Преимущество этого метода в том, что код говорит сам за себя. Должно быть очевидно, что он возвращает имя перечисления (что может быть немного трудно понять, когда вы используете, например, метод ToString).

57
ответ дан 27 November 2019 в 04:01
поделиться

Если ваше перечисление с цветами имеет имя MyColorEnumName, попробуйте

Enum.GetName(typeof(MyColorEnumName),  enumColorValue)
7
ответ дан 27 November 2019 в 04:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: