Nothing
सब पर कोई स्ट्रिंग (अन्य भाषाओं में null
) है, जो एक खाली स्ट्रिंग (""
) है, जो वास्तव में एक स्ट्रिंग है से अलग है होगा।
हालांकि, जांच If Not String.IsNullOrEmpty(TestString) Then
साथ प्रतिस्थापित किया जाना चाहिए, जो यह स्पष्ट वास्तव में आप क्या कर रहे बनाता है।
मैं सिर्फ LINQPad में यह कुछ के साथ चारों ओर निभाई है, और कुछ हल्का आश्चर्य की बात पाया। VB.NET में:
Dim s1 as string = Nothing
Dim s2 as string = ""
Console.WriteLine(s1 is Nothing) 'True
Console.WriteLine(s2 is Nothing) 'False
Console.WriteLine(s1 = "") 'True
Console.WriteLine(s2 = "") 'True
Console.WriteLine(string.IsNullOrEmpty(s1)) 'True
Console.WriteLine(string.IsNullOrEmpty(s2)) 'True
में सी #:
string s1 = null;
string s2 = "";
Console.WriteLine(s1 == null); //True
Console.WriteLine(s2 == null); //False
Console.WriteLine(s1 == ""); //False
Console.WriteLine(s2 == ""); //True
Console.WriteLine(string.IsNullOrEmpty(s1)); //True
Console.WriteLine(string.IsNullOrEmpty(s2)); //True
मैं काफी है कि उम्मीद नहीं थी। ऐसा प्रतीत होता है कि वीबी.Net एक खाली स्ट्रिंग के रूप में Nothing
का इलाज करता है। मेरा अनुमान वीबी के पुराने संस्करणों के साथ संगतता के लिए है।
यह इस प्रकार के चेक के लिए String.IsNullOrEmpty
का उपयोग करने के लिए और अधिक मजबूत करता है, क्योंकि यह अधिक स्पष्ट है कि आप किस चीज की जांच कर रहे हैं, और अपेक्षित कार्य करता है।
स्रोत
2012-07-02 02:30:07
+1 ने मेरे मुंह से शब्दों को चुरा लिया। एरिच, अगर एक स्ट्रिंग सेट नहीं की गई है तो यह कुछ भी नहीं है, अगर एक स्ट्रिंग = "" खाली है। –
मैं पूरी तरह उलझन में हूं। एमएसडीएन पर यह कहता है कि वीबी में स्ट्रिंग प्रकार के चर के लिए, कुछ भी नहीं = ""। यदि ऐसा लगता है कि उपरोक्त अनावश्यक है –
मेरा अनुमान यह होगा कि यह किसी ऐसे व्यक्ति द्वारा किया गया था जो सी # से अधिक परिचित था, जिसमें अलग-अलग व्यवहार हैं, और IsNullOrEmpty के बारे में नहीं जानते हैं। –