क्या वीबी 6 विधि एक दूसरे के साथ तुलना करने के लिए एक ही प्रकार की दो कस्टम ऑब्जेक्ट्स (कक्षा मॉड्यूल में परिभाषित) की अनुमति देता है? मुझे लगता है कि जावा की तुलना के बराबर है विधि के लिए, लेकिन मुझे इसे कहीं भी नहीं मिल रहा है।वीबी 6 ऑब्जेक्ट तुलना
उत्तर
वाले अन्य लोगों प्रश्न के बारे में सोच रहा हो सकता है के लिए:
बहुत कुछ देखने के बाद, ऐसा लगता है कि वीबी 6 में किसी भी प्रकार का अंतर्निहित compareTo
या equals
विधियां नहीं हैं, जैसे जावा करता है।
मैं भूल गया कि जावा में, compareTo
को java.lang.Comparable
इंटरफ़ेस में परिभाषित किया गया है। चूंकि इंटरफेस वीबी 6 में इतने टूटे हुए हैं, भले ही आपने अपना Comparable
इंटरफ़ेस लिखा हो, फिर भी आपको अपने ऑब्जेक्ट की Comparable_compareTo
विधि को कॉल करना होगा जब तक इसे Comparable
के रूप में घोषित न किया गया हो, जो व्यर्थ है।
निष्कर्ष: किसी भी। अगर आप चाहते हैं अपने VB6 कक्षाओं में compareTo
या equals
तरीकों, बस उन्हें में डाल
द्वारा यदि "की तुलना" क्या आपका मतलब "वे एक ही प्रकार के हैं?", तो आप आप कर सकते हैं 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
मेरा मतलब यह है कि समान गुण वाले वर्ग के दो उदाहरण सत्य वापस आना चाहिए। स्वाभाविक रूप से, आप मैन्युअल रूप से उन विशेषताओं की तुलना कर सकते हैं, लेकिन मैंने सोचा कि वीबी 6 की एक विधि थी जिसे आप परिभाषित कर सकते हैं कि यह स्वचालित रूप से कहां होगा। – derekerdmann
सावधान: object1 और object2 विभिन्न प्रकार के हो सकते हैं लेकिन वर्तमान में कुछ भी हल नहीं कर सकते हैं। – onedaywhen
@onedaywhen: अच्छी पकड़। मुझे लगता है कि टाइपनाम ने ऑब्जेक्ट वैरिएबल के प्रकार को वापस कर दिया है, भले ही इसे "कुछ भी नहीं" पर सेट किया गया हो, लेकिन इसके बजाय यह "कुछ भी नहीं" लौटाता है। यह चीजों को जटिल बनाता है। मैंने अपने उदाहरण कोड में एक चेक डाला, लेकिन यदि उनमें से एक वस्तु कुछ भी नहीं है, तो मुझे लगता है कि एक प्रकार की तुलना संभव नहीं है। – raven
"दो वस्तुओं एक वर्ग मॉड्यूल में परिभाषित" - क्या आप "परिभाषित" मतलब है? आप प्रति वर्ग मॉड्यूल केवल एक कक्षा को परिभाषित कर सकते हैं। शायद आप का मतलब है "दो वस्तुओं को तत्काल" लेकिन जहां उनकी तत्कालता की प्रासंगिकता होगी? – onedaywhen
मैं दो वस्तुओं के साथ काम कर रहा हूं, जिनमें से दोनों एक वर्ग के उदाहरण हैं जिन्हें मैंने कक्षा मॉड्यूल में परिभाषित किया है। क्षमा करें कि अस्पष्ट था। – derekerdmann
ठीक है मुझे लगता है कि अब मैं देखता हूं। मुझे यकीन है कि वीबी में कुछ भी नहीं है। ब्याज से, आप क्या उम्मीद करेंगे यदि गुणों में से कोई एक ऑब्जेक्ट था - क्या उसे * ऑब्जेक्ट की तुलना करने की आवश्यकता होगी * विधि ...? – onedaywhen