2010-06-30 17 views
5

क्या वीबी 6 विधि एक दूसरे के साथ तुलना करने के लिए एक ही प्रकार की दो कस्टम ऑब्जेक्ट्स (कक्षा मॉड्यूल में परिभाषित) की अनुमति देता है? मुझे लगता है कि जावा की तुलना के बराबर है विधि के लिए, लेकिन मुझे इसे कहीं भी नहीं मिल रहा है।वीबी 6 ऑब्जेक्ट तुलना

+0

"दो वस्तुओं एक वर्ग मॉड्यूल में परिभाषित" - क्या आप "परिभाषित" मतलब है? आप प्रति वर्ग मॉड्यूल केवल एक कक्षा को परिभाषित कर सकते हैं। शायद आप का मतलब है "दो वस्तुओं को तत्काल" लेकिन जहां उनकी तत्कालता की प्रासंगिकता होगी? – onedaywhen

+0

मैं दो वस्तुओं के साथ काम कर रहा हूं, जिनमें से दोनों एक वर्ग के उदाहरण हैं जिन्हें मैंने कक्षा मॉड्यूल में परिभाषित किया है। क्षमा करें कि अस्पष्ट था। – derekerdmann

+0

ठीक है मुझे लगता है कि अब मैं देखता हूं। मुझे यकीन है कि वीबी में कुछ भी नहीं है। ब्याज से, आप क्या उम्मीद करेंगे यदि गुणों में से कोई एक ऑब्जेक्ट था - क्या उसे * ऑब्जेक्ट की तुलना करने की आवश्यकता होगी * विधि ...? – onedaywhen

उत्तर

1

वाले अन्य लोगों प्रश्न के बारे में सोच रहा हो सकता है के लिए:

बहुत कुछ देखने के बाद, ऐसा लगता है कि वीबी 6 में किसी भी प्रकार का अंतर्निहित compareTo या equals विधियां नहीं हैं, जैसे जावा करता है।

मैं भूल गया कि जावा में, compareTo को java.lang.Comparable इंटरफ़ेस में परिभाषित किया गया है। चूंकि इंटरफेस वीबी 6 में इतने टूटे हुए हैं, भले ही आपने अपना Comparable इंटरफ़ेस लिखा हो, फिर भी आपको अपने ऑब्जेक्ट की Comparable_compareTo विधि को कॉल करना होगा जब तक इसे Comparable के रूप में घोषित न किया गया हो, जो व्यर्थ है।

निष्कर्ष: किसी भी। अगर आप चाहते हैं अपने VB6 कक्षाओं में compareTo या equals तरीकों, बस उन्हें में डाल

6

द्वारा यदि "की तुलना" क्या आपका मतलब "वे एक ही प्रकार के हैं?", तो आप आप कर सकते हैं TypeName समारोह:

If (object1 <> Nothing) and (object2 <> Nothing) then 
    If (TypeName(object1) = TypeName(object2)) Then 
    Debug.Print "object types are the same" 
    Else 
    Debug.Print "object types are NOT the same" 
    End If 
End If 

हैं "की तुलना" क्या आपका मतलब "वे एक ही वस्तु को संदर्भित करते द्वारा ? स्मृति में ", तो आप उपयोग कर सकते हैं ऑपरेटर है:

If (object1 Is object2) Then 
    Debug.Print "objects references are the same" 
Else 
    Debug.Print "objects references are NOT the same" 
End If 
+0

मेरा मतलब यह है कि समान गुण वाले वर्ग के दो उदाहरण सत्य वापस आना चाहिए। स्वाभाविक रूप से, आप मैन्युअल रूप से उन विशेषताओं की तुलना कर सकते हैं, लेकिन मैंने सोचा कि वीबी 6 की एक विधि थी जिसे आप परिभाषित कर सकते हैं कि यह स्वचालित रूप से कहां होगा। – derekerdmann

+0

सावधान: object1 और object2 विभिन्न प्रकार के हो सकते हैं लेकिन वर्तमान में कुछ भी हल नहीं कर सकते हैं। – onedaywhen

+0

@onedaywhen: अच्छी पकड़। मुझे लगता है कि टाइपनाम ने ऑब्जेक्ट वैरिएबल के प्रकार को वापस कर दिया है, भले ही इसे "कुछ भी नहीं" पर सेट किया गया हो, लेकिन इसके बजाय यह "कुछ भी नहीं" लौटाता है। यह चीजों को जटिल बनाता है। मैंने अपने उदाहरण कोड में एक चेक डाला, लेकिन यदि उनमें से एक वस्तु कुछ भी नहीं है, तो मुझे लगता है कि एक प्रकार की तुलना संभव नहीं है। – raven