45

हमारे पास सभी लॉजिकल ऑपरेटरों, शिफ्ट ऑपरेटरों, योजक ऑपरेटरों और सभी गुणक ऑपरेटरों के लिए समकक्ष असाइनमेंट ऑपरेटर हैं।सी # में कोई || = या && = ऑपरेटर क्यों नहीं हैं?

लॉजिकल ऑपरेटरों को क्यों छोड़ा गया? क्या कोई अच्छा तकनीकी कारण है कि यह मुश्किल क्यों है?

+0

@ p.campbell - उनमें से कुछ वास्तव में हैं! – Yuck

+0

क्या कोई कारण है कि आप उनका उपयोग क्यों करेंगे? –

+0

क्या आप एक उदाहरण प्रदान कर सकते हैं जहां वे उपयोगी होंगे? – Fosco

उत्तर

47

लॉजिकल ऑपरेटरों को क्यों छोड़ा गया? क्या कोई अच्छा तकनीकी कारण है कि यह मुश्किल क्यों है?

उन्होंने नहीं किया था। यदि आप चाहें तो &= या |= या ^= कर सकते हैं। क्योंकि स्पष्ट रूप से, वे थोड़ा पागल हो

bool b1 = false; 
bool b2 = true; 
b1 |= b2; // means b1 = b1 | b2 

|| और && ऑपरेटरों एक यौगिक रूप नहीं है। आप किस परिस्थिति में

b1 ||= b2; 
b1 &&= b2; 

जैसे बाएं हाथ की तरफ नहीं बदला जाता है तो सही हाथ की तरफ मूल्यांकन नहीं किया जाता है? ऐसा लगता है कि वास्तव में केवल कुछ लोग इस सुविधा का उपयोग करेंगे, तो इसे क्यों डालें?

परिसर ऑपरेटरों मेरी गंभीर लेख देखें के बारे में अधिक जानकारी के लिए:

http://blogs.msdn.com/b/ericlippert/archive/2011/03/29/compound-assignment-part-one.aspx

और यहाँ अनुवर्ती अप्रैल-फ़ूल लेख:

http://blogs.msdn.com/b/ericlippert/archive/2011/04/01/compound-assignment-part-two.aspx

+12

मैं पहले शॉर्ट सर्किटिंग यौगिक असाइनमेंट चाहता था। कोई भी उनका उपयोग नहीं करता क्योंकि वे मौजूद नहीं हैं। Http://stackoverflow.com/questions/2324549 भी देखें जो कई उदाहरण उदाहरणों का उपयोग करता है। –

+3

क्या आप कृपया बता सकते हैं कि "केवल कुछ लोग इसका उपयोग करेंगे, यह जटिलता को जोड़ता है, और किसी भी तरह से कहा गया लक्ष्य पूरा करने का एक मौजूदा तरीका है" मेरी कंपनी के कुछ नाम (नाम नहीं) सदस्यों के लिए तर्क? मैंने कोशिश की है और स्पष्ट रूप से असफल रहा है। :) –

+4

पुन: "आप किस परिस्थिति में 'बी 1 || = बी 2; ...'" कहना चाहते हैं? इन परिस्थितियों में: मेरे पास तत्वों की एक श्रृंखला है और प्रत्येक तत्व के लिए कुछ शर्त का परीक्षण करने की आवश्यकता है, इसलिए मैं सरणी के माध्यम से लूप करता हूं और 'रनिंग कुल' प्रकार बनाता हूं: 'परिणाम = सत्य; के लिए (i ...) {result && = a [i];} 'या शायद मैं कुल रनिंग करना चाहता हूं' या। असल में, मेरे पास ऐसी परियोजना में ऐसी स्थिति थी जो मैं अभी काम कर रहा हूं। क्या वह इतना मूर्ख है? – daver