2009-06-09 10 views

उत्तर

32

आप आमतौर पर इसे == ऑपरेटर के कार्यान्वयन में देखेंगे।

उदाहरण के लिए: क्योंकि है कि एक ही कोड में recurse होगा

if (f1 == f2) 

:

public static bool operator ==(Foo f1, Foo f2) 
{ 
    if (ReferenceEquals(f1, f2)) 
    { 
     return true; 
    } 
    if (ReferenceEquals(f1, null) || ReferenceEquals(f2, null)) 
    { 
     return false; 
    } 
    // Now do comparisons 
} 

आप नहीं उपयोग करना चाहते हैं! एक विकल्प है:

if ((object)f1 == (object)f2) 

(और बातिल की जांच के लिए एक ही।)
19

यह एक ही बात करता है, तो objobject के रूप में लिखा गया है।

यदि परिवर्तनीय का प्रकार एक स्थिर समानता ऑपरेटर या शून्य ऑपरेटर को परिभाषित करता है, तो यह अलग होगा; और यदि obj को Nullable<T> के रूप में परिभाषित किया गया है तो संकलक चरणबद्ध होगा और HasValue इसके बजाय जांच करेगा।

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