2014-05-20 6 views
6

मैं गंभीरता से स्टंप हूं क्योंकि मुझे वीबीए में एक सरणी देर से बाध्यकारी पर कुछ भी नहीं मिल रहा है। क्या यह भी संभव है? यदि हां, तो कैसे? यदि नहीं - क्यों?देर से बाध्यकारी एक सरणी

नोट: मुझे कोई आपत्ति नहीं है, तो ऐसा लगता है जैसे

Dim o as Object 
set o = CreateObject("System.Array") 

भी System.Array is COM visible हालांकि यह यह दृष्टांत के लिए असंभव लगता है एक देशी नेट/सी प्रकार # का उपयोग कर सकता है।

कोई विचार कैसे वीबीए में एक सरणी डेटा प्रकार को बाध्य करने के लिए?

कृपया, शब्दकोश या संग्रह का उल्लेख नहीं है के रूप में इस सवाल का काफी सरणियों को


अतिरिक्त जानकारी विशिष्ट है:

यह एक my other question पर नजर रखने की तरह है। चूंकि यह एक देशी वीबीए सरणी को देशी में पास करना असंभव प्रतीत होता है। लूपिंग के बिना नेट संग्रह मैं बस सोच रहा था कि क्या एक सरणी को देर से बाध्य करना संभव है क्योंकि दोनों सुरक्षित हैं जैसे कि वे संगत हैं और इसलिए एक वीबीए सरणी को ट्रांसफर कर रहे हैं। नेट एक संभव होगा - अगर मैं पूरी तरह गलत हूं तो कृपया मुझे सही करें।

+0

मुझे लगता है कि एक .NET संग्रह को वापस करने के लिए एक .NET सरणी लेता है जो आंतरिक रूप से कर रहा है, इस बारे में उत्सुक हूं? (बस अपने पिछले प्रश्न को पुनः करें, जो मुझे लगता है कि मुझे अस्पष्टता याद है) –

+1

मुझे यकीन नहीं है कि मैं सही प्रश्न समझता हूं: क्या यह है: 1) वीबीए में वीबीए सरणी में देर से बांधें, 2) वी # में वीबीए में देर से बांधें सरणी, या 3) ... वीबीए में एक .NET सरणी में देर से बंधे? (ऐसा लगता है कि मुझे लगता है कि संख्या 3) –

+0

@Cor_Blimey यह तीसरा है –

उत्तर

3
set o = CreateObject("System.Array") 

System.Array एक सार वर्ग है। तो नहीं, यह संभवतः काम नहीं कर सकता है। ऐरे प्रकार विशेष हैं, वे आमतौर पर संकलक द्वारा बनाए जाते हैं। बैकडोर टाइप.मेकएरेरे टाइप() है और आप बना सकते हैं जो एक है।

कुछ भी आप उपयोग नहीं करना चाहते हैं। इतनी मेहनत न करें, किसी भी वीबीए सरणी को सिस्टम में परिवर्तित कर दिया गया है। पहले से ही ऐरे। यह अक्सर गैर-अनुरूप सरणी है, जिसका एक सूचकांक 0 पर पहला तत्व नहीं है। वीबीए 1 पसंद करता है, जब तक कि आप Dim arr(0 To 3) As Double जैसे वाक्यविन्यास का उपयोग न करें या Option Base 0 प्रभाव में न हों। हमेशा संभव नहीं है, एक गैर अनुरूप अनुरूप सरणी का उपयोग करने के लिए Array.GetValue() का उपयोग करें। नमूना एक्सेसर रैपर के लिए अपने other question की समीक्षा करें।

संबंधित मुद्दे