मुझे हार्डवेयर से कई बिट फ़ील्ड प्राप्त हो रहे हैं।झंडे enum का उपयोग करने के पेशेवरों और विपक्ष क्या हैं?
मेरे कोड मूल रूप से किया गया था:
public readonly byte LowByte;
public bool Timer { get { return (LowByte & 1) == 1; } }
तब मैं झंडे enum की याद आई और करने के लिए इसे बदलने पर विचार कर रहा हूँ:
[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; } }
और इतने पर।
कौन सा सर्वोत्तम अभ्यास है और क्या होगा यदि प्रत्येक दृष्टिकोण के पेशेवर और विपक्ष हैं?
संपादित करें: मुझे यह जानने में दिलचस्पी है कि दो दृष्टिकोणों के बीच कोई व्यावहारिक अंतर है, खासकर प्रदर्शन के संबंध में। मैं कोडिंग शैलियों पर राय मांगना नहीं चाहता हूं (जब तक कि यह माइक्रोसॉफ्ट दिशानिर्देशों से नहीं आता) क्योंकि यह सवाल अनियंत्रित के रूप में बंद होगा। धन्यवाद।
इस कोड का उपभोग करने वाले डेवलपर के दृष्टिकोण से इसे देखने का प्रयास करें। लेखन इकाई परीक्षण करना ऐसा करने का एक अच्छा तरीका है; लेखन उदाहरण (कोड नमूने) एक और है। किस तरह से डेवलपर स्पष्ट कोड लिखने की अनुमति देता है? क्लाइंट डेवलपर के लिए कौन सा तरीका सबसे सहज होगा? – TrueWill