2010-03-31 12 views
17

String.IsNullOrEmpty() को व्हाइटस्पेस तारों को खाली के रूप में गिनने के लिए क्या आवश्यक है?स्ट्रिंग.इएसनुलऑरफेक्टी() स्पेस

ईजी।

String.IsNullOrEmpty(" ".Trim()); 

(ध्यान दें कि मूल प्रश्न पूछा क्या वापसी सामान्य रूप से इसलिए होगा:

String.IsNullOrEmpty(" "); 

वहाँ से एक बेहतर दृष्टिकोण है: मैं निम्नलिखित सामान्य false के बजाय true लौटना चाहते असहज टिप्पणियां, इसे एक और समझदार प्रश्न के साथ बदल दिया गया है)।

+8

आप इसे की कोशिश की? यह झूठी वापसी करेगा, क्योंकि जिस स्ट्रिंग को आप पास कर रहे हैं वह न तो शून्य है और न ही खाली स्ट्रिंग है। – Paddy

+3

आप सरल परीक्षा कार्यक्रम क्यों नहीं बनाते और इसे स्वयं आज़माते हैं? –

+0

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

उत्तर

48

.NET 4.0 विधि String.IsNullOrWhiteSpace विधि पेश करेगा। तब तक आपको Trim का उपयोग करने की आवश्यकता होगी यदि आप खाली स्ट्रिंग्स से निपटने के साथ ही सफेद स्पेस स्ट्रिंग्स से निपटना चाहते हैं।

.NET 4.0 का उपयोग नहीं कर कोड के लिए, एक सहायक विधि null या खाली है या खाली स्थान के तार के लिए जाँच करने के लिए इस तरह लागू किया जा सकता:

public static bool IsNullOrWhiteSpace(string value) 
{ 
    if (String.IsNullOrEmpty(value)) 
    { 
     return true; 
    } 

    return String.IsNullOrEmpty(value.Trim()); 
} 

String.IsNullOrEmpty किसी भी ट्रिमिंग प्रदर्शन नहीं करेगा और सिर्फ अगर जाँच करेगा स्ट्रिंग एक शून्य संदर्भ या एक खाली स्ट्रिंग है।

+0

हम्म यह व्यवहार कैसे करेगा यदि आप इसे स्ट्रिंग पर एक्सटेंशन विधि के रूप में करते हैं तो .NET 4.0 बाहर है? ... या प्रतीक्षा करें कि आप केवल स्ट्रिंग के उदाहरणों के लिए स्ट्रिंग को एक्सटेंशन नहीं लिख सकते हैं, या क्या मैं यहां गलत हूं? – cyberzed

+0

@cyberzed, यह सब एक प्रश्न हो सकता है। आप केवल स्ट्रिंग के उदाहरणों के लिए लागू एक्सटेंशन विधियों के बारे में सही हैं। और चूंकि .NET 4.0 पर नई विधि 'स्ट्रिंग' कक्षा पर एक स्थिर विधि है, इसलिए कोई टक्कर नहीं होगी। –

+0

हे, मैं खुद जवाब के साथ आया जैसे मैंने "टिप्पणी जोड़ें" बटन दबाया, इसलिए मैंने इसे अन्य लोगों के संदर्भ के रूप में छोड़ने का फैसला किया :) – cyberzed

11
String.IsNullOrEmpty(" ") 

... झूठी

String foo = null; 
String.IsNullOrEmpty(foo.Trim()) 

रिटर्न ... एक अपवाद फेंकता के रूप में foo अशक्त है।

String.IsNullOrEmpty(foo) || foo.Trim() == String.Empty 

... सच रिटर्न

बेशक

, अगर आप एक्सटेंशन समारोह के रूप में इसे लागू कर सकते हैं:

static class StringExtensions 
{ 
    public static bool IsNullOrWhiteSpace(this string value) 
    { 
     return (String.IsNullOrEmpty(value) || String.IsNullOrEmpty(value.Trim())); 
    } 
} 
संबंधित मुद्दे