Как использовать Перечисление с дополнительными опциями (Все, Ни один)

У меня есть перечисление, который:

  • включен в мой класс как свойство
  • это представляет некоторые значения от таблицы базы данных (несколько типов)
  • это отображено в Dropbox, так, чтобы это могло использоваться в качестве фильтра

Теперь я хотел бы добавить, что 'Все' (или 'Ни один', например) оценивают этому Dropbox.

Как должен я делать это:

  • добавить 'Все' значение к Перечислению?
  • добавьте 'Все' значение к Dropbox, типу изменения моего свойства от Перечисления для Строкового представления
  • некоторая другая опция...
7
задан Cœur 19 March 2017 в 07:06
поделиться

2 ответа

Комментарий Codesleuth к другому ответу заставил меня перечитать вопрос, и вот обновление.

Рассмотрите возможность использования перечисления флагов , если вы собираетесь иметь несколько комбинаций. В вашем случае это будет означать, что выбор любой комбинации типов является допустимым вводом.

[Flags]
enum MyTypes
{
    None = 0,
    One = 1,
    Two = 2,
    Three = 4,
    Four = 8,
    All = One | Two | Three | Four
}

Если пользователь может выбрать только один тип или все типы, используйте обычное перечисление:

enum MyType
{
    None,
    One,
    Two,
    Three,
    Four,
    All
}
6
ответ дан 7 December 2019 в 03:15
поделиться

ИМХО, лучше добавить Значение 'All' в вашем перечислении выглядит следующим образом:

enum SampleEnum 
{
    Value1 = 1,
    Value2 = 2,
    Value3 = 4,
    All = Value1 | Value2 | Value3 
}

Таким образом, вам не нужно будет заботиться об отображаемых элементах в вашем поле со списком, и вы можете реагировать на выбор этого значения в вашем коде, если это необходимо ...

2
ответ дан 7 December 2019 в 03:15
поделиться
Другие вопросы по тегам:

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