Object t = 4;
Object s = 4;
if (t == s) { // false
}
List<Object> q = new List<object>() { t };
Boolean found = q.Contains(s); // found = true!
उपर्युक्त कोड में, मैं t == s
false
लौटने से आश्चर्यचकित नहीं हूं; यह दो वस्तुओं के संदर्भों की तुलना कर रहा है और संदर्भ समान नहीं हैं।क्यों == से अलग वस्तुओं की तुलना करता है?
लेकिन मुझे हैरान है कि इसमें तथ्य वापस आ रहा है; जाहिर है कि यह ऑब्जेक्ट रेफरेंस की तुलना नहीं कर रहा है ... जैसा कि यह 4 और 4 के अनबॉक्स किए गए मानों की तुलना कर रहा है .. लेकिन यह तुलना करने के लिए वस्तुओं को अनबॉक्स करने के लिए कैसे और क्यों पता चलता है? मैं यहाँ खेलने पर बड़े pricniple समझने की कोशिश कर रहा हूँ।
मेरा मानना है कि 'ऑब्जेक्ट्स 'संदर्भ की तुलना में डिफ़ॉल्ट है जहां' ऑब्जेक्ट्स 'स्मृति में हैं, और चूंकि वे दो अलग-अलग वस्तुएं हैं; उनके पास स्मृति में दो अलग-अलग स्थान हैं। इसलिए वे '==' नहीं हैं। –