2011-11-21 31 views
67

जब मैं प्रोग्राम चलाता हूं तो मुझे यह त्रुटि मिलती रहती है।ऑब्जेक्ट संदर्भ किसी ऑब्जेक्ट के उदाहरण पर सेट नहीं है।

ऑब्जेक्ट संदर्भ किसी ऑब्जेक्ट के उदाहरण पर सेट नहीं है। विवरण: वर्तमान वेब अनुरोध के निष्पादन के दौरान एक अनचाहे अपवाद हुआ। त्रुटि के बारे में अधिक जानकारी के लिए और जहां यह कोड में उत्पन्न हुआ, कृपया स्टैक ट्रेस की समीक्षा करें। अपवाद विवरण: System.NullReferenceException: ऑब्जेक्ट संदर्भ किसी ऑब्जेक्ट के उदाहरण पर सेट नहीं है।

Source Error: 

Line with error: 

Line 156:  if (strSearch == "" || strSearch.Trim().Length == 0) 

सही तरीका यह लिखा जाना चाहिए क्या है?

+0

यदि मामला जोड़ें (strSearch! = Null)? – ToddBFisher

+0

त्रुटि इंगित करता है कि ऑब्जेक्ट शून्य है। या तो strSearch शून्य है या strSearch.Trim() का नतीजा शून्य है। जांचने के लिए, IsNullOrWhitespace का उपयोग करके ग्राफैन के उत्तर का उपयोग करें। – Russell

उत्तर

93

.NET 4.0 में सही तरीका है:

if (String.IsNullOrWhiteSpace(strSearch)) 

ऊपर उपयोग String.IsNullOrWhiteSpace विधि के बराबर है:

if (strSearch == null || strSearch == String.Empty || strSearch.Trim().Length == 0) 
// String.Empty is the same as "" 

IsNullOrWhiteSpace विधि के लिए संदर्भ

http://msdn.microsoft.com/en-us/library/system.string.isnullorwhitespace.aspx

इंगित करता है कि निर्दिष्ट स्ट्रिंग कुछ भी खाली नहीं है, या केवल सफेद-स्पेस वर्णों में से है।

if (String.IsNullOrEmpty(strSearch) || strSearch.Trim().Length == 0) 

ऊपर उपयोग String.IsNullOrEmpty विधि के बराबर है:

पहले के संस्करणों में, आप कुछ इस तरह कर सकता है

if (strSearch == null || strSearch == String.Empty) 

आप अभी भी जांच करने के लिए की जरूरत है जिसका मतलब है उदाहरण के अनुसार .Trim().Length == 0 के साथ आपका "IsWhiteSpace" केस। IsNullOrEmpty विधि

http://msdn.microsoft.com/en-us/library/system.string.isnullorempty.aspx

के लिए

संदर्भ इंगित करता है निर्दिष्ट स्ट्रिंग कुछ भी नहीं है या कोई रिक्त स्ट्रिंग है या नहीं।

स्पष्टीकरण:

आप strSearch (या उस बात के लिए किसी भी चर) सुनिश्चित करने की आवश्यकता डॉट चरित्र (.) का उपयोग कर यह भिन्नता इससे पहले कि आप null नहीं है - यानी इससे पहले कि आप strSearch.SomeMethod() करते हैं या strSearch.SomeProperty आप strSearch != null जांचने की आवश्यकता है।

  • रिक्त नहीं है
  • रिक्त स्ट्रिंग (String.Empty/"")
  • नहीं है:

    अपने उदाहरण में आप सुनिश्चित करें कि आपके स्ट्रिंग एक मूल्य, जिसका अर्थ है आप स्ट्रिंग सुनिश्चित करना चाहते है बनाना चाहते

  • सिर्फ खाली स्थान के

ऊपर मामलों में नहीं है, तो आप डाल चाहिए "यह शून्य है?" मामला पहले, इसलिए स्ट्रिंग null होने पर अन्य मामलों (और त्रुटि) की जांच करने के लिए यह आगे नहीं बढ़ता है।

+1

यदि आप –

+0

+1 के बंद होने वाले हैं)। लेकिन यह केवल नेट 4.0 या इससे अधिक है। –

+1

इस चेक को करने के लिए क्लास एक्सटेंशन विधि होना अच्छा लगता है: सार्वजनिक स्थैतिक IsEmptyOrWhiteSpace (यह स्ट्रिंग मान) { रिटर्न स्ट्रिंग।IsEmptyOrWhiteSpace (मान); – MrSnowflake

4

इस मामले में strSearch शायद शून्य (बस खाली नहीं) है।

String.IsNullOrEmpty(strSearch)

का उपयोग कर अगर आप सिर्फ अगर स्ट्रिंग किसी भी सामग्री नहीं है निर्धारित करने के लिए कोशिश कर रहे हैं की कोशिश।

+0

यह उसकी मदद नहीं करता है अगर उसकी स्ट्रिंग में व्हाइटस्पेस है। –

+0

मूल प्रश्न 0 लंबाई स्ट्रिंग की तलाश में था, इसलिए कड़ाई से यह थोड़ा अलग आवश्यकता होगी। –

+0

@ सुंदर कैम: अब मुझे इस लाइन पर एक त्रुटि मिल रही है। मुझे लगता है कि यह सही ढंग से नहीं कहा जाता है। स्ट्रिंग strSearch = अनुरोध ["txtSearchName"]। ToString(); – Mike

21

नेट के सभी संस्करणों:

if (String.IsNullOrEmpty(strSearch) || strSearch.Trim().Length == 0) 

नेट 4.0 या बाद:

if (String.IsNullOrWhitespace(strSearch)) 
1

मैं कह आप इस कार्यक्षमता के लिए एक विस्तार विधि बना सकते हैं द्वारा MattMitchell के जवाब का विस्तार करना चाहते:

public static IsEmptyOrWhitespace(this string value) { 
    return String.IsEmptyOrWhitespace(value); 
} 

इससे कॉल करना संभव हो जाता है:

string strValue; 
if (strValue.IsEmptyOrWhitespace()) 
    // do stuff 

मेरे लिए यह स्थिर String फ़ंक्शन को कॉल करने से बहुत साफ है, जबकि अभी भी NullReference सुरक्षित है!

3

मुझे पता है कि यह एक साल पहले पोस्ट किया गया था, लेकिन यह भविष्य के संदर्भ के लिए उपयोगकर्ताओं के लिए है।

मैं इसी तरह के मुद्दे पर आया था। मेरे मामले में (मैं संक्षिप्त होने की कोशिश करूंगा, अगर आप अधिक विस्तार चाहते हैं तो कृपया मुझे बताएं), मैं यह जांचने की कोशिश कर रहा था कि कोई स्ट्रिंग खाली है या नहीं (स्ट्रिंग एक ईमेल का विषय है)। यह हमेशा एक ही त्रुटि संदेश लौटाता है इससे कोई फर्क नहीं पड़ता कि मैंने क्या किया। मुझे पता था कि मैं इसे सही कर रहा था लेकिन यह अभी भी एक ही त्रुटि संदेश फेंक रहा है। फिर यह मेरे सामने आया कि, मैं जांच रहा था कि ईमेल (उदाहरण/वस्तु) का विषय (स्ट्रिंग), क्या होगा यदि ईमेल (उदाहरण) पहले स्थान पर पहले से ही शून्य था। मैं ईमेल के विषय की जांच कैसे कर सकता हूं, अगर ईमेल पहले से ही शून्य है .. मैंने जांच की है कि ईमेल खाली था, तो यह ठीक काम करता था।

विषय (स्ट्रिंग) की जांच करते समय मैंने IsNullorWhiteSpace(), IsNullOrEmpty() विधियों का उपयोग किया।

if (email == null) 
{  
    break;  
} 
else 
{  
    // your code here  
} 
+0

शॉर्ट सर्किटिंग के कारण, आपके पास कुछ ऐसा हो सकता है जैसे 'if (email == null || email.subject.IsNullOrWhiteSpace()) {....', और इसे शून्य ईमेल हिस्से को ठीक से संभालना चाहिए –

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

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