2012-01-09 10 views
14

मैं वी # 6 कोड के स्वचालित अनुवाद की समीक्षा कर रहा हूं और कनवर्टर का अनुवाद someArray(3) से someArray[3] पर किया गया है। लेकिन पुराने कोड प्रलेखन के अनुसार इसे तीसरे तत्व को चौथे स्थान पर नहीं लेना चाहिए क्योंकि यह अनुवादित संस्करण में कर रहा है।वीबी 6 में आधारित सरणी इंडेक्स 0-आधारित हैं?

वीबी 6 में आधारित सरणी अनुक्रमणिका 0-आधारित हैं? या वे 1 से शुरू करते हैं?

+0

क्या यह एक सरणी * घोषणा * है या एक सरणी * तत्व * का उपयोग कर रहा है? –

+0

@ कोडी एक सरणी तत्व तक पहुंच रहा है। –

उत्तर

14

हाँ - सरणियों हैं (आम तौर पर) 0 VB6

इसका अपवाद जब स्पष्ट Dim someArray(1 To 10) as Int वाक्य रचना इस्तेमाल किया गया है, या Option Base 1 कोड मॉड्यूल के शीर्ष पर घोषित किया जाता है जब में आधारित।

यह Collections नहीं है - जब आप Collection ऑब्जेक्ट्स के माध्यम से लूप करते हैं तो मुझे पूरा यकीन है कि वे 1 आधारित हैं।

+4

"जब तक स्पष्ट प्रकार सिंटेक्स का उपयोग नहीं किया जाता है" * या * 'विकल्प बेस 1' को कोड ब्लॉक –

+0

@ मैट के शीर्ष पर घोषित किया गया है: अच्छा बिंदु। –

+0

@Matt क्या यह कथन केवल वर्तमान फ़ाइल को प्रभावित करता है? –

6

संक्षिप्त उत्तर यह है कि सरणी निचली सीमाएं हैं जो आप बताते हैं।

डिफ़ॉल्ट आधार 0 (जब तक Option Base 1 द्वारा ओवरराइड) है, लेकिन आप कम इसे मनचाहे मान के लिए बाध्य घोषणा कर सकते हैं (Dim arr(-42 To 42)Dim(3) के रूप में के रूप में मान्य है)।

इसके अलावा, अगर किसी ऑब्जेक्ट द्वारा किसी सरणी को वापस किया जाता है, तो इसकी निचली सीमा वह वस्तु है जो इसे सेट करती है। उदाहरण के लिए ExcelRange.Value संदर्भ 1 आधारित सरणी वापस करेगा।