У меня возникают проблемы с использованием перечисления в качестве флага.
Это описание:Как сделать несколько подмножеств в перечислении
Это мое перечисление:
[Flags]
public enum AuthorityFlagsEnum : short
{
Output_1_enable = 1 << 0,
Output_2_enable = 1 << 1,
Output_3_enable = 1 << 2,
Output_4_enable = 1 << 3,
Arm_Disarm = 1 << 4,
Bypass_enable = 1 << 5,
Open_Close_report_enable = 1 << 6,
Arm_only = Output_2_enable,
Arm_only_during_close_window = Output_3_enable,
Master_Program = Output_4_enable,
}
Как я могу знать, в моем методе, если флаги установлены взяты из первого набора (руки только, мастер/программа) или со второго набора (выход 1 - 4)?
Какова подпись вашего метода? Требуется ли несколько байтовых параметров? –
Я думаю, у вас должно быть два разных набора перечислений. Один для тех случаев, когда «бит 7 ясен», а второй для «бит 7». В противном случае я не думаю, что можно магически познакомиться с другим. EDIT: Еще одна возможность - дать «Arm_only» и связанным значениям уникальное значение. Затем, когда вы читаете/записываете свои байты, преобразуйте его в правильное значение бит. –