आप वास्तव नामक एक भाषा सुविधा का उल्लेख "शॉर्ट-सर्किट तार्किक अभिव्यक्ति":
क्या इसका मतलब यह है: एक तार्किक अभिव्यक्ति के परिणाम अब और नहीं बदल सकते है, जैसे जब यह स्पष्ट हो जाता है कि अभिव्यक्ति "सत्य" या "झूठी" का मूल्यांकन करेगी, इससे कोई फर्क नहीं पड़ता कि अभिव्यक्ति के शेष हिस्सों का मूल्यांकन नहीं किया जाएगा।
उदाहरण के लिए, सी #, जावा या जावास्क्रिप्ट ऐसा करते हैं, और आप उन भाषाओं में (अपने प्रश्न का उत्तर देने के लिए) पर भरोसा कर सकते हैं।
आपके मामले में, अगर MyClass अशक्त नहीं है:
MyClass == null
झूठी
- का आकलन करती है, क्योंकि यह एक "या" अभिव्यक्ति है, दूसरे भाग अभी भी परिणाम को बदल सकते हैं, तो यह
मूल्यांकन किया जाता
myClass.Property > 0
निर्धारित करता है अंतिम परिणाम
अगर MyClass रिक्त है:
MyClass == null
सही
- का आकलन करती है, क्योंकि यह एक "या" अभिव्यक्ति है, यह कोई फर्क नहीं पड़ता कि क्या इस प्रकार
- कोई और अधिक मूल्यांकन किया जाता है, अंतिम परिणाम सच है
भाषाओं करना है कि कर रहे हैं शॉर्ट-सर्किट तार्किक अभिव्यक्ति नहीं। शास्त्रीय वीबी एक उदाहरण है, यहां "myClass.Property> 0" का मूल्यांकन किया जाएगा और यदि MyClass शून्य था (जिसे वीबी में "कुछ भी नहीं" कहा जाता है तो एक त्रुटि उत्पन्न होगी)।
सी # में सटीक क्रम परिभाषित किया गया है। – Martijn