यदि मेरे पास एक जटिल वस्तु है, तो 2 उदाहरणों की तुलना करने के लिए कोड लिखने के लिए सबसे अच्छा अभ्यास पैटर्न क्या है, यह देखने के लिए कि वेदो वस्तुओं की तुलना।
उत्तर
IEquatable इंटरफ़ेस को कार्यान्वित करते हैं। यह एक सामान्यीकृत विधि को परिभाषित करता है कि उदाहरणों की समानता निर्धारित करने के लिए एक प्रकार-विशिष्ट विधि बनाने के लिए मान प्रकार या वर्ग लागू होता है। बराबर (ऑब्जेक्ट) को ओवरराइड करना न भूलें। अधिक यहाँ जानकारी:
मुझे लगता है कि इस सवाल का जवाब अत्यधिक समस्या निर्भर है। उदाहरण के लिए, आप वस्तुओं को केवल तभी मानना चाहेंगे जब उनकी सभी संपत्ति समकक्ष हों। यह शायद वह मामला होगा जहां प्रत्येक ऑब्जेक्ट में विशिष्ट पहचान संपत्ति नहीं होती है। यदि ऐसी कोई संपत्ति (या गुण) है, तो एक आईडी या आईडी और संस्करण कहें, जो विशिष्ट रूप से प्रकार के प्रत्येक ऑब्जेक्ट को पहचानता है, तो आप केवल उस संपत्ति (या गुणों) के आधार पर तुलना करना चाहेंगे।
आधार पैटर्न, हालांकि, होना चाहिए की तरह कुछ:
if their references are equal (includes both null)
return true
else if one object is null
return false
else
return value based on relevant properties
ध्यान दें कि अगर आप को ओवरराइड ऑपरेटर के बराबर है, तो आप भी GetHashCode() इतना है कि बराबर वस्तुओं के लिए हैश कोड ओवरराइड करने के लिए चाहता हूँ समान हैं। यह सुनिश्चित करेगा कि ऑब्जेक्ट कुंजी के रूप में उपयोग किए जाने पर डुप्लिकेट कुंजियों को निर्धारित करने के लिए हैश कोड का उपयोग करने वाले डेटा स्ट्रक्चर ठीक से काम करते हैं।
चूंकि आपने कॉम्प्लेक्स ऑब्जेक्ट का उल्लेख किया है, तो सुनिश्चित करें कि कॉम्प्लेक्स ऑब्जेक्ट कार्यान्वयन में सभी समग्र ऑब्जेक्ट्स (ऑब्जेक्ट) जैसा कि tvanfosson द्वारा उल्लिखित है। आखिरकार कॉम्प्लेक्स ऑब्जेक्ट में समेकित सभी समग्र ऑब्जेक्ट्स के बराबर लाभ
को ओवरराइड या ओवरराइड नहीं करते ? –
- 1. जावा दो पैटर्न वस्तुओं की तुलना
- 2. वस्तुओं की तुलना
- 3. की तुलना jQuery वस्तुओं
- 4. वस्तुओं की तुलना करें?
- 5. कक्षा वस्तुओं की तुलना करें
- 6. वस्तुओं के सरणी की तुलना
- 7. दो Arrays की तुलना
- 8. दो ऑब्जेक्ट्स की तुलना
- 9. की तुलना दो ArrayList
- 10. दो सीजीआरईटी की तुलना
- 11. तुलना वस्तुओं
- 12. दो कैलेंडर ऑब्जेक्ट्स की तुलना
- 13. दो वेक्टर छवियों की तुलना
- 14. दो UIImages की तुलना करें
- 15. दो एनएसएसआरिंग्स की तुलना करें
- 16. दो तिथियों की तुलना करें
- 17. दो एक्सएमएल स्कीमा की तुलना
- 18. सी ++: दो वैक्टरों की तुलना
- 19. दो NSNumber ऑब्जेक्ट्स की तुलना
- 20. दो डेटासेट्स की तुलना करने की प्रक्रिया
- 21. दो डेटाबेस की संरचनाओं की तुलना करें?
- 22. linq के साथ दो सूचियों की वस्तुओं की तुलना कैसे कर सकते हैं?
- 23. दो सूची-जैसी वस्तुओं की सामग्री की तुलना करने के सर्वोत्तम तरीके क्या हैं?
- 24. सी # अज्ञात प्रकारों (संदर्भ और मूल्य प्रकार सहित) की दो वस्तुओं की तुलना करें
- 25. तुलना पूर्णांक वस्तुओं
- 26. दो मानदंडों से वस्तुओं की सरणी सरणी?
- 27. केवल दिनांक भाग की तुलना कैसे करें और दो तिथियों के समय की तुलना कैसे करें?
- 28. मैं उद्देश्य-सी में वस्तुओं की तुलना कैसे करूं?
- 29. तुलना करें 2 JSON वस्तुओं
- 30. वस्तुओं के सरणी की तुलना करें, इष्टतम तरीका
आईसीओपरपेबल – leora
से यह अलग कैसे है Iquatable केवल आपको बताएगा कि वे समान हैं या नहीं। IComparable आपको एक सापेक्ष आदेश देगा। ऑब्जेक्ट्स के लिए जिन्हें ऑर्डर नहीं किया गया है, लेकिन वे समतुल्य हैं (छवियों, उदाहरण के लिए) आप IComparable का उपयोग नहीं कर सकते हैं। – tvanfosson
है .quals() == ?? – leora