Ключевое слово enum в языке C# используется для объявления перечисления — отдельного типа, который состоит из набора именованных констант, называемого списком перечислителей. Enum существенно повышает удобочитаемость кода, позволяя избавиться от «магических переменных». Но при выводе значения пользователю возникает необходимость отображать значения в более удобочитаемом формате или на другом языке. Рассмотрим один из вариантов отображения значения enum на русском языке с использованием атрибутов.

Для начала создадим перечисление. В качестве тестового примера будем использовать перечисление из 5 элементов состоящих из цифр от 1 до 5. Обратите внимание, что для того, чтобы использовать атрибут Description необходимо подключить пространство имен using System.ComponentModel;

Теперь нам необходимо создать метод, который будет получать значение из атрибута Description. Обратите внимание, что для корректной работы данного метода необходимо подключить еще одну библиотеку using System.Reflection; Выглядеть он будет следующим образом:

И как результат нам остается взывать наш метод для проверки корректности его работы. Для сравнения будем использовать различные методы приведения перечисления.

Запустим программу и получим следующий результат:

Enum result

Enum result

При желании данный метод можно переписать в форме метода расширения. Тогда его сигнатура будет выглядеть следующим образом:

Ну а соответственно использование изменится на такой формат:

Полный код проекта можно найти на сайте по ссылке https://github.com/shwanoff/EnumDescription

 
Рубрики: C#

shwan

Программист .NET

×
%d такие блоггеры, как: