Tôi nhận được một số trường bit từ phần cứng.Ưu và khuyết điểm của việc sử dụng cờ enum là gì?
Mã của tôi ban đầu:
public readonly byte LowByte;
public bool Timer { get { return (LowByte & 1) == 1; } }
Sau đó, tôi nhớ đến những lá cờ enum và đang xem xét thay đổi nó để:
[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; } }
và vân vân.
Phương pháp nào là thực tiễn tốt nhất và điều gì sẽ xảy ra nếu có bất kỳ ưu và nhược điểm nào của mỗi phương pháp tiếp cận?
EDIT: Tôi muốn biết liệu có bất kỳ khác biệt thực tế nào giữa hai cách tiếp cận, đặc biệt là về hiệu suất hay không. Tôi không muốn thu hút ý kiến về các kiểu mã hóa (trừ khi nó xuất phát từ các nguyên tắc của Microsoft) vì điều đó sẽ thấy câu hỏi được đóng là không có cấu trúc. Cảm ơn.
Hãy thử xem xét từ quan điểm của nhà phát triển đang sử dụng mã này. Viết đơn vị kiểm tra là một cách tốt để làm điều đó; các ví dụ viết (mẫu mã) là một ví dụ khác. Cách nào cho phép nhà phát triển viết mã rõ ràng nhất? Cách nào sẽ trực quan nhất cho nhà phát triển ứng dụng khách? – TrueWill