Скажем, у меня есть enum BasicType
, который определяется следующим образом:
public enum ObjectType{
A = 1,
B = 2,
C = 3,
}
Идентификатор BasicType выполняет троичную классификацию любого Object
. Впоследствии я понял, что с объектами A и B нужно обращаться так же, как с C, поэтому я определил еще один enum ObjectGroupType
как следует:
public enum ObjectGroupType
{
AB = 1,
C = 2,
}
С новым перечислением я могу объединять объекты нескольких известных типов в один. Итак, когда я получаю поток объектов различных типов, я фактически определяю, относятся ли они к типу AB или C. Есть ли элегантный обходной путь для этого? Например, смогу ли я присвоить одинаковые значения перечисления для A и B в ObjectGroupType
?:
Редактировать 1: я не могу найти сходство с вопросом здесь
Редактировать 2. Спасибо, Морис, за ваш конструктивный вклад. Принимая во внимание ваш ответ, я придумал это новое определение ObjectGroupType
.
public enum ObjectGroupType
{
AB = ObjectType.A | ObjectType.B
C = 2,
}
Это действительно?
По существу, когда я обрабатываю поток объектов типа AB, я хочу установить объекты типа A или типа B. Это очень похоже на иерархическое двухуровневое дерево решений:
object
/ \
AB C
/\
A B
enum
? - person Jace   schedule 24.07.2016