मिलता है मैं कोड की निम्न पंक्ति की है। मुझे समझ में नहीं आता क्यों है। null
की जांच करने के लिए मेरे कोड का पूरा बिंदु नहीं है और यदि ऐसा है तो string.empty
असाइन करें? जब मैं DEBUG में चेक करता हूं तो यह बता रहा है कि EditValue == null
तो मुझे क्या याद आ रही है?तो null.Equals (शून्य) कारण है कि मैं एक NullReferenceException
उत्तर
lkuDomainType.EditValue == null
का उपयोग करें, अन्यथा आप एक शून्य ऑब्जेक्ट पर एक इंस्टेंस विधि कॉल करने का प्रयास कर रहे हैं। लेकिन बेहतर विकल्प lkuDomainType.EditValue ?? String.Empty
हो सकता है। lkuDomainType
को शून्य होने के लिए भी देखें, जब तक कि यह एक वर्ग न हो।
धन्यवाद, हिंडसाइट में काफी स्पष्ट लगता है, निश्चित रूप से एक 'डुह' पल। धन्यवाद। –
+2 (दुर्भाग्य से संभव नहीं है) सही उत्तर और '??' का उपयोग करने की सिफारिश के लिए। –
+1: शून्य का उपयोग करते समय शून्य कोलेसिंग (या '??') ऑपरेटर .NET के लिए एक बढ़िया जोड़ा था और कुछ ऐसा जो मुझे बहुत याद आती है। – Powerlord
जब आप Object.Property
और Object
का उपयोग अपरिभाषित करते हैं, तो आप एक शून्य सूचक को संदर्भित कर रहे हैं और यही कारण है कि आपको अपवाद मिलता है। इसके बजाय, उपयोग:
var selectedDomainID = lkuDomainType.EditValue == null ? string.Empty : lkuDomainType.EditValue;
मुझे सही उत्तर के लिए ए) को जवाब देना था, बी) वाक्य में * dereference * का उपयोग करने के लिए, और बी) लगभग उचित उपयोगकर्ता नाम –
के लिए महान उत्तर, +1, लेकिन SO कहता है कि @ यूरी का जवाब पहले था । हालांकि धन्यवाद। –
@ रिफ्रैक्टेड हां, यह 4 सेकंड तक था :) मुझे '??' – NullUserException
आप एक अशक्त वस्तु पर बराबर विधि कॉल करने की कोशिश कर रहे हैं - यह बजाय जैसे कि यह कार्य करें:
lkuDomainType.EditValue == null
EditValue == बातिल। इसका मतलब है कि वहां कोई वस्तु नहीं है। आप शून्य वस्तुओं पर फ़ंक्शंस को कॉल नहीं कर सकते हैं, भले ही फ़ंक्शन है .क्वल्स()।
आप इस मामले में बस "(lkuDomainType.EditValue == null)" कहने से बेहतर हैं।
यदि EditValue
शून्य है तो आप Equals
पर कॉल नहीं कर सकते हैं। इस कैस में आप क्या करना होगा:
var selectedDomainID = lkuDomainType.EditValue == null ? string.Empty : lkuDomainType.EditValue;
या आप ऐसा करके इसे सरल कर सकते हैं:
var selectedDomainID = lkuDomainType.EditValue ?? string.Empty;
आप String.IsNullOrEmpty यहाँ का उपयोग करना चाहिए। इस तरह:
var selectedDomainID = String.IsNullOrEmpty(lkuDomainType.EditValue) ? string.Empty : lkuDomainType.EditValue;
बराबर एक विधि है, तो आप एक अशक्त वस्तु जो एक अपवाद फेंक रहा है पर एक विधि कॉल करने की कोशिश कर रहे हैं।
मुझे समझ में नहीं आ रहा है, 'स्ट्रिंग। INNullOrEmpty' भी एक * विधि * नहीं है? –
यह एक स्थिर विधि है, यह lkuDomainType.EditValue ऑब्जेक्ट की विधि नहीं है। – brendan
आह, इसे साफ़ करने के लिए धन्यवाद। –
जब EditValue रिक्त है आप उस पर बराबर विधि कॉल नहीं कर सकते तो जाँच करने के लिए सबसे अच्छा तरीका है
lkuDomainType.EditValue == null ? string.Empty : lkuDomainType.EditValue;
समस्या उपयोग करने के लिए है कि आप पता चल सके कि यह शून्य से पहले वस्तु का उपयोग कर रहे है। आप ऑब्जेक्ट की Equals
विधि को कॉल कर रहे हैं, जो संदर्भ शून्य होने पर विफल रहता है।
आपको lkuDomainType.EditValue == null
के लिए अपने lkuDomainType.EditValue.Equals(null)
का आदान-प्रदान करना होगा।
यदि lkuDomainType.EditValue शून्य है, तो "lkuDomainType.EditValue.Equals (someObject)" कोडिंग के समान है "null.Equals (someObject)"। खैर, जाहिर है, "शून्य" में कोई सदस्य या विधियां नहीं हैं (यदि यह किया गया तो यह शून्य नहीं होगा)। यही कारण है कि आप एक NullReferenceException मिलता है।
अन्य पदों के अधिकांश उदाहरण काम करेंगे, जिसमें स्ट्रिंग.इन्सनुलऑरफेक्टी शामिल है, जो एक विधि है जो एक बूलियन मान देता है।
- 1. कैप्चर अपवाद कैसे शून्य हो सकता है (NullReferenceException नहीं)?
- 2. कारण है कि यह बेहतर है तो treeset
- 3. ImageSourceConverter एक NullReferenceException फेंकता है ... क्यों?
- 4. Async लॉगिंग एक NullReferenceException
- 5. ऑब्जेक्टिव-सी है, तो एक स्ट्रिंग शून्य
- 6. LINQ InsertOnSubmit: NullReferenceException
- 7. क्या कारण है "एनएसएसकेनर: शून्य स्ट्रिंग तर्क"?
- 8. 'NSInvalidArgumentException', कारण: 'डेटा पैरामीटर शून्य है'
- 9. कारण है कि हम hypertable
- 10. जब मैं अपने पृष्ठों में से किसी एक पर रीडायरेक्ट करता हूं तो साइटकोर एक NullReferenceException अपवाद क्यों फेंकता है?
- 11. परीक्षण करता है, तो एक shared_ptr शून्य है
- 12. यदि कोई विधि का रिटर्न प्रकार शून्य है तो मैं वापस क्या करूँ? (शून्य नहीं!)
- 13. NullReferenceException जब NavigationContext
- 14. मैं एक शून्य मूल्य
- 15. iTextSharp HTMLWorker.ParseToList() NullReferenceException
- 16. यह निर्धारित करता है कि कोई मान शून्य है, यदि सत्य है तो गलत, अन्यथा सही
- 17. एक शून्य ऑब्जेक्ट
- 18. कारण है कि हम छवि प्रसंस्करण
- 19. यदि मूल्य शून्य है तो मैं एक sqldatareader को मान कैसे वापस कर सकता हूं?
- 20. कुछ पृष्ठों पर jQuery "$ (...) शून्य है" का कारण क्या है?
- 21. मुझे यह सिस्टम क्यों मिलता है। NullReferenceException?
- 22. कैसे जांचें कि एक डबल शून्य है या नहीं?
- 23. छोड़कर खेतों कि शून्य
- 24. जांचें कि कोई कॉलम शून्य नहीं है
- 25. जांचें कि कोई ऑब्जेक्ट शून्य है
- 26. यदि मैं उद्देश्य-सी में एक आदिम शून्य हूं तो मैं कैसे परीक्षण करूं?
- 27. माइक्रोसॉफ्ट वेब पर NullReferenceException https.Web.Administration https बाध्यकारी
- 28. ReSharper "संभावित NullReferenceException" FileInfo के साथ गलत है?
- 29. अनुरोध कब कर सकता है। शून्य शून्य हो?
- 30. क्या यह संभव है कि जावा स्ट्रिंग.split एक शून्य स्ट्रिंग []
lkuDomkain टाइप नहीं कर सकते हैं? जब आप lkuDomainType.EditValue को कॉल करते हैं, तो यह NullReferenceException फेंकता है। –
आपके शीर्षक के कारण: 'a == b'' a.Equals (b) 'जैसा नहीं है। –
@Stefan: महान बिंदु! भविष्य के खोजकर्ताओं के लिए अधिक सटीक होने के लिए परिवर्तित ... धन्यवाद –