2010-05-06 6 views

उत्तर

10

यहाँ, आप दो अलग अलग तरीकों कॉल कर रहे हैं। पहली कॉल के लिए, int स्पष्ट रूप से double पर परिवर्तनीय है, इसलिए विधि में इनपुट double है और यह दो double एस के बीच समानता जांच करता है। हालांकि, दूसरे कॉल के लिए, int को double पर डाला जा रहा है, इसे केवल बॉक्स किया जा रहा है। आप परावर्तक में Double.Equals(object) विधि पर एक नजर है, तो पहली पंक्ति है:

if (!(obj is double)) 
{ 
    return false; 
} 

तो यह, झूठी लौटा रहा है के रूप में इनपुट एक बॉक्स्ड int, नहीं एक बॉक्स्ड double है।

अच्छी पकड़!

संबंधित मुद्दे