यह देखने के लिए कि क्या उदाहरण के लिए AB सेट है मैं यह कर सकता हूं:
यदि ((पत्र और पत्र ।AB) == पत्र.AB)
क्या यह जाँचने का एक सरल तरीका है कि संयुक्त ध्वज स्थिरांक के किसी भी झंडे को निम्नलिखित की तुलना में सेट किया गया है या नहीं?
यह जाँचता है कि A और B दोनों सेट हैं, और इस बात को अनदेखा करते हैं कि क्या कोई और झंडे सेट हैं।
if((letter & Letters.A) == Letters.A || (letter & Letters.B) == Letters.B)
यह जाँचता है कि या तो A या B सेट है, और इस बात को अनदेखा करता है कि कोई और झंडे सेट हैं या नहीं।
इसे सरल बनाया जा सकता है:
if(letter & Letters.AB)
यहां बाइनरी संचालन के लिए सी है; इसे C # पर लागू करना सीधा होना चाहिए:
enum {
A = 1,
B = 2,
C = 4,
AB = A | B,
All = AB | C,
};
int flags = A|C;
bool anything_and_a = flags & A;
bool only_a = (flags == A);
bool a_and_or_c_and_anything_else = flags & (A|C);
bool both_ac_and_anything_else = (flags & (A|C)) == (A|C);
bool only_a_and_c = (flags == (A|C));
संयोग से, प्रश्न के उदाहरण में चर का नाम विलक्षण 'अक्षर' है, जिसका अर्थ यह हो सकता है कि यह केवल एक अक्षर का प्रतिनिधित्व करता है; उदाहरण कोड यह स्पष्ट करता है कि इसके संभावित अक्षरों का एक सेट और कई मानों की अनुमति है, इसलिए चर 'अक्षरों' का नाम बदलने पर विचार करें।