विषयसूची
bool.TryParse()
के साथ मज़बूत बूलियन रूपांतरण- प्रत्यक्ष रूपांतरण विधियाँ:
bool.Parse()
औरConvert.ToBoolean()
- विभिन्न स्ट्रिंग निरूपणों को संभालना
bool.TryParse()
के साथ मज़बूत बूलियन रूपांतरण
स्ट्रिंग्स को बूलियन मानों में बदलना C# में एक बारंबार कार्य है, खासकर जब उपयोगकर्ता इनपुट या बाहरी डेटा स्रोतों को संसाधित किया जाता है। स्ट्रिंग्स अक्सर निहित रूप से बूलियन अवस्थाओं (“true”, “false”, “1”, “0”) का प्रतिनिधित्व करते हैं। सबसे मज़बूत दृष्टिकोण bool.TryParse()
विधि का उपयोग करता है।
bool.TryParse()
अपवादों को फेंके बिना रूपांतरण का प्रयास करता है। यह सफलता पर true
देता है, परिणामी बूलियन मान को एक out
पैरामीटर में रखता है; अन्यथा, यह false
देता है। यह सुचारु त्रुटि संचालन की अनुमति देता है।
string strTrue = "True";
string strFalse = "false";
string invalidString = "hello";
bool result;
if (bool.TryParse(strTrue, out result))
{
Console.WriteLine($"रूपांतरण सफल: {result}"); // आउटपुट: रूपांतरण सफल: True
}
else
{
Console.WriteLine("रूपांतरण विफल");
}
if (bool.TryParse(strFalse, out result))
{
Console.WriteLine($"रूपांतरण सफल: {result}"); // आउटपुट: रूपांतरण सफल: False
}
else
{
Console.WriteLine("रूपांतरण विफल");
}
if (bool.TryParse(invalidString, out result))
{
Console.WriteLine($"रूपांतरण सफल: {result}");
}
else
{
Console.WriteLine("रूपांतरण विफल"); // आउटपुट: रूपांतरण विफल
}
इस विधि की त्रुटि लचीलापन के लिए सिफारिश की जाती है, अप्रत्याशित इनपुट से क्रैश को रोकना। आप रूपांतरण विफलताओं को उचित रूप से संभाल सकते हैं, शायद सूचनात्मक त्रुटि संदेश प्रदर्शित कर सकते हैं या डिफ़ॉल्ट बूलियन मानों का उपयोग कर सकते हैं।
प्रत्यक्ष रूपांतरण विधियाँ: bool.Parse()
और Convert.ToBoolean()
जबकि मज़बूती के लिए bool.TryParse()
को प्राथमिकता दी जाती है, bool.Parse()
और Convert.ToBoolean()
अधिक संक्षिप्त, हालांकि कम क्षमाशील, विकल्प प्रदान करते हैं।
bool.Parse()
सीधे एक स्ट्रिंग को परिवर्तित करता है। यह “True”, “False”, “true”, “false”, “1”, और “0” ( “True” और “False” के लिए केस-संवेदनशील नहीं) स्वीकार करता है, अमान्य इनपुट के लिए एक FormatException
फेंकता है।
string strTrue = "True";
bool boolTrue = bool.Parse(strTrue); // true
Convert.ToBoolean()
समान व्यवहार करता है लेकिन null
इनपुट को false
वापस करके संभालता है, एक ArgumentNullException
से बचता है।
string strNull = null;
bool boolNull = Convert.ToBoolean(strNull); // false
हालांकि, अप्रत्याशित इनपुट स्ट्रिंग्स को संभालने के लिए दोनों विधियाँ bool.TryParse()
की तुलना में कम लचीली और त्रुटि-प्रवण हैं।
विभिन्न स्ट्रिंग निरूपणों को संभालना
यह विचार करना महत्वपूर्ण है कि आपका एप्लिकेशन बूलियन मानों के विभिन्न स्ट्रिंग निरूपणों को कैसे संभालता है। जबकि चर्चा की गई विधियाँ “true”, “false”, “1”, और “0” को स्वीकार करती हैं, आप “yes”, “no”, “Y”, “N”, या यहां तक कि कस्टम निरूपण जैसे विविधताओं का सामना कर सकते हैं। ऐसे मामलों में, रूपांतरण से पहले इनपुट स्ट्रिंग को सामान्य करने के लिए कस्टम प्री-प्रोसेसिंग जोड़ने पर विचार करें, शायद एक switch
स्टेटमेंट या एक डिक्शनरी लुकअप का उपयोग करके।
उदाहरण के लिए, “yes” और “no” को समायोजित करने के लिए:
string input = "yes";
string normalizedInput = input.ToLower();
bool result;
if (normalizedInput == "yes" || normalizedInput == "true" || normalizedInput == "1")
{
result = true;
}
else if (normalizedInput == "no" || normalizedInput == "false" || normalizedInput == "0")
{
result = false;
}
else
{
// अमान्य इनपुट को संभालें
result = false; // या एक अपवाद फेंकें
}