क्या यह वही बात है?संदर्भ Equals (शून्य, obj) null == obj जैसा ही है?
if (ReferenceEquals(null, obj)) return false;
और
if (null == obj) return false;
क्या यह वही बात है?संदर्भ Equals (शून्य, obj) null == obj जैसा ही है?
if (ReferenceEquals(null, obj)) return false;
और
if (null == obj) return false;
आप आमतौर पर इसे == ऑपरेटर के कार्यान्वयन में देखेंगे।
उदाहरण के लिए: क्योंकि है कि एक ही कोड में 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)
(और बातिल की जांच के लिए एक ही।)
यह एक ही बात करता है, तो obj
object
के रूप में लिखा गया है।
यदि परिवर्तनीय का प्रकार एक स्थिर समानता ऑपरेटर या शून्य ऑपरेटर को परिभाषित करता है, तो यह अलग होगा; और यदि obj
को Nullable<T>
के रूप में परिभाषित किया गया है तो संकलक चरणबद्ध होगा और HasValue
इसके बजाय जांच करेगा।