null - (C#) Problems when overloading the == operator -


इस सवाल का पहले से ही एक उत्तर है: < / P>

  • 9 जवाब

मैं ओवरलोड किया == ऑपरेटर निम्नानुसार मेरे वर्ग पर:

  सार्वजनिक स्थिर बूल ऑपरेटर == (तालिका pt1, तालिका pt2) {वापसी की तुलना करें (pt1, pt2) == 0 & amp; amp; Pt1.TableName == pt2.TableName; }  

तुलना करें जैसे c ++ में स्ट्रकम्प करता है, एक पूर्णांक लौटाता है समस्या यह है कि अगर मैं (MY_CLASS == रिक्त) अगर कोई करता हूं, तो यह मेरे == ऑपरेटर को फोन करेगी, और इस प्रकार मेरी तुलना फ़ंक्शन। क्या वैकल्पिक है? पीटी 1 और पीटी 2 पर एक जांच करने के लिए कि क्या वे रिक्त हैं? या सिर्फ पीटी 2 में?

आपको माइक्रोसॉफ्ट के '==' ऑपरेटर को कार्यान्वित करने और ओवरराइड करने के लिए चेकआउट करना चाहिए 'इक्वलल्स ()'।

उनके उदाहरण का अनुकूलन करने के लिए आप ऐसा कुछ चाहते हैं:

  सार्वजनिक स्थिर बूल ऑपरेटर == (टेबल ए, टेबल बी) {// यदि दोनों अशक्त हैं, या दोनों एक ही उदाहरण हैं, सच वापस करें यदि (System.Object.ReferenceEquals (ए, बी)) {वापस सच; } // यदि कोई रिक्त है, लेकिन दोनों नहीं, तो झूठी वापसी करें। अगर (((ऑब्जेक्ट) ए == रिक्त) || ((ऑब्जेक्ट) बी == नल)) {वापसी झूठी; } // यदि सही हो तो फ़ील्ड से वापसी: रिटर्न तुलना करें (ए, बी) == 0 & amp; amp; A.TableName == b.TableName; }  

Comments

Popular posts from this blog

c++ - Linux and clipboard -

Visual Studio 2005: How to speed up builds when a VSMDI is open? -

booting ubuntu from usb using virtualbox -