Вероятно, каждый из нас использует перечисляемые типы время от времени в программах на C#. Перечисляемые типы, которые мы создаем - это отличный способ передать то, что значение может быть одним из набора дискретных значений (или сочетанием этих значений в случае битовых флагов).
Но возможности перечисляемых типов выходят далеко за рамки простого присваивания и сравнения, есть много методов в классе Enum (от которого "наследуются" все перечисления), которые могут дать вам еще больше возможностей при работе с ними.
IsDefined() - проверка, что данное значение присутствует в перечислении
Вы считываете значение для перечисления из источника данных, но не уверены, что это действительно допустимое значение? Приведение не скажет вам этого, и Parse() не гарантирует разбора, если вы передаете ему int или комбинацию флагов. Итак, что мы можем сделать?
Давайте предположим, что у нас есть небольшое перечисление, содержащее коды результатов, которые мы хотим возвращать из нашего слоя бизнес-логики:
public enum ResultCode
{
Success,
Warning,
Error
}
В этом перечислении Success (Успешно) будет равен нулю (если другое значение не задано явно), Warning (Предупреждение) будет 1, а Error (Ошибка) будет 2.
Read more: Addicted to .NET
QR: