ハードウェアからいくつかのビットフィールドを受け取っています。フラグ列挙型の賛否両論は何ですか?
私のコードは、もともと:
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; } }
と。
どちらがベストプラクティスであり、それぞれのアプローチの賛否両論があればどうでしょうか?
EDIT:特にパフォーマンスに関して2つのアプローチの間に実用的な違いがあるかどうかを知りたいと思っています。私は、(Microsoftのガイドラインにない限り)コーディングスタイルに関する意見を求めることは望ましくない。なぜなら、質問が非構造的なものとして閉じられるからだ。ありがとう。それは非常に少なくとも
このコードを消費する開発者の視点から見てください。単体テストを書くことはそれを行う良い方法です。例(コードサンプル)を書くことも別です。どのようにすれば、開発者は最も明確なコードを書くことができますか?どちらの方法でクライアント開発者にとって最も直感的でしょうか? – TrueWill