में IENumerable की भावना बनाना System.Collections.ArrayList
ऑजेक्ट करने के लिए मैं VBScript for each
कथन का उपयोग क्यों कर सकता हूं, लेकिन Systems.Collections.SortedList
ऑब्जेक्ट नहीं?.NET COM इंटरऑप
निम्नलिखित को देखते हुए:
set aList = Server.CreateObject("System.Collections.ArrayList")
aList.Add "a"
aList.Add "b"
aList.Add "c"
for each item in aList
' do something
next
set sList = Server.CreateObject("System.Collections.SortedList")
sList.Add "a", 1
sList.Add "b", 2
sList.Add "c", 3
for each item in sList
' do something
next
लाइन के साथ
वस्तु
for each item in sList
दुर्घटनाओं * इस संपत्ति या विधि का समर्थन नहीं करता।
इस संपत्ति तक मुझे लगता है वे _NewEnum
संपत्ति मतलब है। लेकिन _NewEnum
ArrayList
द्वारा खुलासा क्यों किया जा रहा है, लेकिन SortedList
नहीं है? दोनों वर्गों IEnumberable
इंटरफ़ेस जो वियोजन से mscorelib.dll
इंटरफ़ेस _NewEnum
संपत्ति (-4 की dispId
) को लागू करने के लिए जिम्मेदार हो गया लगता है को लागू।
यदि कोई भी इन समान वर्गों के विभिन्न COM इंटरऑप व्यवहार पर कुछ प्रकाश डाल सकता है तो मैं बहुत सराहना करता हूं।
मैं जानता हूँ कि मैं संग्रह से अधिक पुनरावृति करने के लिए अन्य संपत्तियों के SortedList
द्वारा उजागर उपयोग कर सकते हैं। मैं नहीं पूछ रहा हूं कि SortedList
को फिर से कैसे चालू किया जाए। मैं सिर्फ यह पूछ रहा हूं कि IEnumrable
SortedList
के इंटरऑप संस्करण में लागू क्यों नहीं होता है जब इसे ArrayList
के इंटरऑप संस्करण में कार्यान्वित किया जाता है।