दोनों विधियों में क्या अंतर है
Convert.ToBoolean()
तथा
Boolean.Parse()
?
क्या एक या दूसरे का उपयोग करने का कोई कारण है?
इसके अतिरिक्त, क्या कोई अन्य type.Parse()
विधियां हैं जिन्हें मुझे देखना चाहिए?
धन्यवाद,
मैट
जवाबों:
Convert.ToBoolean(string)
वास्तव में bool.Parse()
वैसे भी कॉल करता है, इसलिए गैर-शून्य के लिए string
, कोई कार्यात्मक अंतर नहीं है। (अशक्त string
s के लिए, Convert.ToBoolean()
रिटर्न false
, जबकि bool.Parse()
फेंकता है a ArgumentNullException
।)
इस तथ्य को देखते हुए, आपको bool.Parse()
तब उपयोग करना चाहिए जब आप निश्चित हों कि आपका इनपुट शून्य नहीं है, क्योंकि आप अपने आप को एक नल चेक से बचाते हैं।
Convert.ToBoolean()
बेशक कई अन्य अधिभार हैं जो आपको bool
कई अन्य अंतर्निहित प्रकारों से उत्पन्न करने की अनुमति देते हैं , जबकि केवल एस के Parse()
लिए है string
।
Type.Parse () मेथड्स के संदर्भ में आपको जिन तरीकों की तलाश करनी चाहिए, उनमें सभी बिल्ट-इन न्यूमेरिक टाइप्स के Parse()
साथ-साथ TryParse()
मेथड्स भी हैं। DateTime
उन लोगों के साथ-साथ अतिरिक्त ParseExact()
/ TryParseExact()
विधियां हैं, जो आपको तिथि के लिए एक अपेक्षित प्रारूप निर्दिष्ट करने की अनुमति देती हैं।
Parse()
आप एक बहुत ही मामूली (संभावित अगोचर) लाभ प्राप्त करेंगे यदि आप निश्चित हैं कि इनपुट शून्य स्ट्रिंग नहीं है । यदि आप निश्चित नहीं हैं, तो बस उपयोग करें ToBoolean()
, क्योंकि यह आपके लिए चेक करेगा। और यदि आप नहीं चाहते कि एक अशक्त स्ट्रिंग का परिणाम गलत हो, तो अपने आप को चेक करें, और फिर कॉल करें Parse()
यदि यह शून्य नहीं है।
यहाँ लघु डेमो है:
object ex1 = "True";
Console.WriteLine(Convert.ToBoolean(ex1)); // True
Console.WriteLine(bool.Parse(ex1.ToString())); // True
object ex2 = "true";
Console.WriteLine(Convert.ToBoolean(ex2)); // True
Console.WriteLine(bool.Parse(ex2.ToString())); // True
object ex3 = 1;
Console.WriteLine(Convert.ToBoolean(ex3)); // True
Console.WriteLine(bool.Parse(ex3.ToString())); // Unhandled Exception: System.FormatException
object ex3 = "1";
Console.WriteLine(Convert.ToBoolean(ex3)); // An unhandled exception of type 'System.FormatException' occurred
Console.WriteLine(bool.Parse(ex3.ToString())); // Unhandled Exception: System.FormatException
object ex4 = "False";
Console.WriteLine(Convert.ToBoolean(ex4)); // False
Console.WriteLine(bool.Parse(ex4.ToString())); // False
object ex5 = "false";
Console.WriteLine(Convert.ToBoolean(ex5)); // False
Console.WriteLine(bool.Parse(ex5.ToString())); // False
object ex6 = 0;
Console.WriteLine(Convert.ToBoolean(ex6)); // False
Console.WriteLine(bool.Parse(ex6.ToString())); // Unhandled Exception: System.FormatException
object ex7 = null;
Console.WriteLine(Convert.ToBoolean(ex7)); // False
Console.WriteLine(bool.Parse(ex7.ToString())); // Unhandled Exception: System.NullReferenceException
नोट: bool
ट्रूस्ट्रिंग और फाल्सस्ट्रिंग के दो गुण भी हैं , लेकिन सावधान रहें, क्योंकि bool.TrueString != "true"
, केवलbool.TrueString == "True"
Console.WriteLine(bool.TrueString); // True
Console.WriteLine(bool.FalseString); // False
Convert.ToBoolean("1"); // Format Exception
Boolean.Parse()
तार्किक बूलियन मान के स्ट्रिंग प्रतिनिधित्व को बूलियन मान में बदल देगा। Convert.ToBoolean()
ऐसे कई अधिभार हैं जो आदिम प्रकारों को उनके बूलियन समकक्ष में बदल देंगे।
अधिकांश, यदि सभी नहीं, तो C # में आदिम प्रकार के एक संबद्ध * .Parse / Convert.To * पद्धति है जो समान उद्देश्य के रूप में कार्य करती है Boolean.Parse()/Convert.ToBoolean()
।