Ricevo diversi campi bit dall'hardware.Quali sono i pro e i contro dell'uso di una flag enum?
Il mio codice era in origine:
public readonly byte LowByte;
public bool Timer { get { return (LowByte & 1) == 1; } }
poi mi sono ricordato l'enum bandiere e sto pensando di cambiare a:
[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; } }
e così via.
che è meglio la pratica e che cosa se ne sono i pro ei contro di ogni approccio?
EDIT: Sono interessato a sapere se ci sono differenze pratiche tra i due approcci, in particolare per quanto riguarda le prestazioni. Non desidero sollecitare un'opinione sugli stili di codifica (a meno che non provenga da linee guida Microsoft) in quanto ciò renderebbe la domanda chiusa come non costruttiva. Grazie.
Provate a guardarlo dal punto di vista dello sviluppatore che consuma questo codice. Scrivere test di unità è un buon modo per farlo; gli esempi di scrittura (esempi di codice) sono un altro. In che modo lo sviluppatore può scrivere il codice più chiaro? In che modo sarebbe più intuitivo per lo sviluppatore del cliente? – TrueWill