2010-10-25 8 views
10

क्या वीबी 6 शॉर्ट सर्किट सशर्त परीक्षण करता है? यही कारण है, कहने के लिए मुझे यकीन है कि एक बयान की तरह ...क्या वीबी 6 शॉर्ट-सर्किट जटिल परिस्थितियां हैं?

If index <= array_size And array(index) > something Then 

सरणी, जो कुछ भी सूचकांक के मूल्य होने के लिए हो सकता है फट कभी नहीं होगा हो सकता है?

उत्तर

22

नहीं है, VB6 के And और Or शॉर्ट सर्किट (जो कारण है कि शॉर्ट सर्किट संस्करणों AndAlso और VB.net में OrElse कहा जाता है है - पश्चगामी संगतता) नहीं है।

+2

मुझे नहीं पता था कि वीबी.नेट ने इसका समर्थन किया था! इस प्रबुद्ध उत्तर के लिए बहुत बहुत धन्यवाद। आपने मुझे कई घोंसला वाले 'if' बयान बचाए हैं। – Brad

+4

धन्यवाद, केनीटीएम। आपने मुझे कई विस्फोटक सरणी को निस्संदेह बचाया है। –

1

यदि आप अपने उद्देश्य के लिए इसका उपयोग कर सकते हैं तो केस एक शॉर्ट सर्किट विधि है चुनें।

+0

मुझे नहीं लगता कि मैं कर सकता हूं, लेकिन वैसे भी सुझाव के लिए धन्यवाद। –

3

If/Then/Else/End If ब्लॉक के अतिरिक्त, वीबी 6 एक सिंगल-लाइन If/Then/Else निर्माण का भी समर्थन करता है। आप सरल शॉर्ट-सर्किटिंग प्राप्त करने के लिए इन्हें घोंसला कर सकते हैं। हालांकि, चूंकि यह एक सिंगल-लाइन कथन है, इसलिए आपको अपनी वांछित कार्रवाई को उसी पंक्ति पर भी करना होगा। उदाहरण के लिए:

' From (no short-circuit) 
If index <= array_size And array(index) > something Then 

' To (short-circuit) 
If index <= array_size Then If array(index) > something Then ... 
+0

तो VB.Net में 'AndAlso'' VB6 में 'फिर अगर' है। आप भी लाइन पर निरंतरता (अंडरस्कोर) का उपयोग कर सकते हैं। – wqw

+0

@wqw, हाँ, लाइन निरंतरता का उपयोग किया जा सकता है। हालांकि आपके पास सिंगल-लाइन 'फिर' के बाद कथन का ब्लॉक नहीं हो सकता है। यदि आपको कई संचालन करने की आवश्यकता है, तो उन्हें अलग करने के लिए ':' का उपयोग करना आवश्यक है। – Bond

+0

वीबी 6 में जहां भी आप 'एंड'' का उपयोग कर सकते हैं, VB.Net में आप अभिव्यक्ति को शॉर्ट सर्किट करने के लिए 'AndAlso' का उपयोग कर सकते हैं। मेरा मतलब यह है कि वीबी 6 में 'अगर' कथन में जहां भी आप 'और' का उपयोग कर सकते हैं, आप अभिव्यक्ति को शॉर्ट-सर्किट करने के लिए 'फिर अगर' (इसे एक एकल बूल ऑपरेटर की तरह मानें) का उपयोग कर सकते हैं। – wqw