तुलना ऑपरेटरों में शामिल हैं:
- समानता ऑपरेटर (==), उन ऑपरेंड के लिए सही लौटाता है जिनके मान समान हैं।
- असमानता ऑपरेटर (!=), दो ऑपरेंड बराबर होने पर गलत रिटर्न देता है।
- रिलेशनल ऑपरेटर से कम (<), सभी संख्यात्मक और गणना प्रकारों के लिए परिभाषित किया गया है और यदि पहला ऑपरेंड दूसरे ऑपरेंड से कम है तो यह सही है।
- ग्रेटर दैन रिलेशनल ऑपरेटर (>), सभी न्यूमेरिक और एन्यूमरेशन प्रकारों के लिए परिभाषित किया गया है और यदि पहला ऑपरेंड दूसरे ऑपरेंड से बड़ा है तो यह सही है।
- रिलेशनल ऑपरेटर (<=) से कम या बराबर, सभी संख्यात्मक और गणना प्रकारों के लिए परिभाषित किया गया है और यदि पहला ऑपरेंड दूसरे ऑपरेंड से कम या उसके बराबर है, तो यह सही है।
- रिलेशनल ऑपरेटर (>=) से अधिक या उसके बराबर, सभी संख्यात्मक और गणना प्रकारों के लिए परिभाषित किया गया है और यदि पहला ऑपरेंड दूसरे ऑपरेंड से अधिक या उसके बराबर है तो सही है।
तुलना ऑपरेटरों में निम्नलिखित विशेषताएं हैं:
- एक प्रकार के चर पर काम करें और बूल प्रकार का मान वापस करें।
- उपयोगकर्ता परिभाषित प्रकार की वस्तुओं की तुलना के लिए सीधे इस्तेमाल नहीं किया जा सकता। यदि वस्तुओं की तुलना करने के लिए उपयोग किया जाता है, तो एक तुलना ऑपरेटर केवल वस्तु संदर्भों की तुलना करता है न कि उनमें मौजूद डेटा की।
- स्थैतिक सदस्य कार्यों को परिभाषित करके और कीवर्ड ऑपरेटर का उपयोग करके उपयोगकर्ता-परिभाषित प्रकारों में अतिभारित किया जा सकता है।
- जोड़े में अतिभारित होना चाहिए। यदि == अतिभारित है, != अतिभारित होना चाहिए। यही नियम जोड़े <और> और <= और>= पर भी लागू होता है।
- तुलना ऑपरेटरों को अधिभारित करना < और > अंतर्निहित रूप से उनके संबंधित असाइनमेंट ऑपरेटरों (यदि कोई हो) को अधिभारित करता है।
- यदि == और != किसी दिए गए प्रकार के लिए अतिभारित हैं, तो Equals() और GetHashCode() विधियों को ओवरराइड किया जाना चाहिए।
- तुलना के लिए तर्क को लागू करने के लिए ऑपरेटर को ओवरलोड किए जाने तक स्ट्रक्चर्स के साथ उपयोग नहीं किया जा सकता है।
नेस्टेड क्लास वाली वस्तुओं की तुलना करते समय, तुलना एक नेस्टेड ऑब्जेक्ट की ओर इशारा करते हुए एक संदर्भ पर आधारित हो सकती है जिसकी तुलना (गहरी तुलना) या वस्तुओं के मूल्यों पर की जानी है। यह निर्णय किसी एप्लिकेशन के डिज़ाइन चरण में तय किया जाना चाहिए। फ़्लोटिंग पॉइंट नंबरों के बीच तुलना के लिए, मूल्यों को आवेदन के लिए स्वीकार्य स्तर तक गोल किया जाना चाहिए।
0 Comments