Я получаю несколько битовых полей от оборудования.
Изначально мой код был:
public readonly byte LowByte;
public bool Timer { get { return (LowByte & 1) == 1; } }
Затем я вспомнил о перечислении флагов и подумываю изменить его на:
[Flags]
public enum LowByteReasonValues : byte
{
Timer = 1,
DistanceTravelledExceeded = 2,
Polled = 4,
GeofenceEvent = 8,
PanicSwitchActivated = 16,
ExternalInputEvent = 32,
JourneyStart = 64,
JourneyStop = 128
}
public readonly LowByteReasonValues LowByte;
public bool Timer { get { return (LowByte & LowByteReasonValues.Timer) == LowByteReasonValues.Timer; } }
и так далее.
Что является наилучшей практикой и какие есть плюсы и минусы каждого подхода?
РЕДАКТИРОВАТЬ: Мне интересно узнать, есть ли какие-либо практические различия между двумя подходами, особенно в отношении производительности. Я не хочу запрашивать мнение о стилях кодирования (если оно не исходит из руководящих принципов Microsoft), поскольку в этом случае вопрос будет закрыт как неконструктивный. Спасибо.