न्यूनतम या अधिकतम दो संख्याओं/कार्यों की तुलना करते समय, सी # शॉर्ट सर्किट करता है यदि मामला पहले के लिए सच है और दूसरे के लिए सच बताएगा? इन मामलों में से विशिष्ट उदाहरणMath.Min या Math.Max शॉर्ट-सर्किट की तुलना में तुलना करता है?
if(x < Math.Max(y, z()))
और
if(x > Math.Min(y, z()))
Math.Max(y, z())
के बाद से y के रूप में कम से कम के रूप में बड़े मान प्रदान करेगा, अगर एक्स < y फिर वहाँ z(), मूल्यांकन करने के लिए कोई जरूरत नहीं है जो कर रहे हैं थोड़ी देर लग सकता है Math.Min
के साथ इसी तरह की स्थिति।
मुझे लगता है कि इन दोनों शॉर्ट सर्किट के लिए
if(x < y || x < z())
की तर्ज पर फिर से लिखा जा सकता है, लेकिन मुझे लगता है यह और अधिक स्पष्ट क्या तुलना पुनर्लेखन के बिना है। क्या यह शॉर्ट सर्किट है?
मान लें कि आप 'if (x> XYZ (y, z()))' कंपाइलर XYZ के परिणाम को कैसे जानते हैं? अधिकतम, न्यूनतम, औसत या कुछ और? –
@ एलबी महान बिंदु, मैंने इसे इस तरह से नहीं माना था। – yoozer8
इसके अलावा, "लघु-सर्किट" अभिव्यक्ति बराबर नहीं हो सकती है, इस पर निर्भर करता है कि 'मिन' और' मैक्स 'नाइन कैसे संभालता है। – dan04