निम्नलिखित झंडे को देखते हुए,सी # Enum झंडे तुलना
[Flags]
public enum Operations
{
add = 1,
subtract = 2,
multiply = 4,
divide = 8,
eval = 16,
}
मैं एक अगर हालत प्रत्येक कार्रवाई करने के लिए कैसे लागू कर सकता है? मेरे प्रयास में, पहली स्थिति जोड़ने के लिए सच है, eval eval, जो सही है। हालांकि पहली स्थिति घटाने के लिए भी सच है, eval, जो गलत है।
public double Evaluate(double input)
{
if ((operation & (Operations.add & Operations.eval)) == (Operations.add & Operations.eval))
currentResult += input;
else if ((operation & (Operations.subtract & Operations.eval)) == (Operations.subtract & Operations.eval))
currentResult -= input;
else
currentResult = input;
operation = null;
return currentResult;
}
मैं नहीं देख सकता कि समस्या क्या है।
क्या यह सिर्फ मुझे लगता है कि दिखाए गए ऑपरेशन के लिए [ध्वज] सही नहीं है? मैं एक असली दुनिया के नमूने के बारे में सोचने के लिए संघर्ष कर रहा हूं जहां मेरे पास गणितीय परिचालनों पर झंडे दिखाई देंगे ... – Sunny
मैं सनी से सहमत हूं। झंडे को कैलकुलेटर में राज्यों का प्रतिनिधित्व करना था। मुझे यकीन नहीं है कि मैंने ऐसा क्यों किया। पीछे की ओर, मैं इसे आजकल ऐसा नहीं करूँगा। की –
संभावित डुप्लिकेट [सी # में तुलना कैसे झंडे?] (http://stackoverflow.com/questions/40211/how-to-compare-flags-in-c) –