C# Programming

C# में सशक्त स्ट्रिंग से बूलियन रूपांतरण

Spread the love

विषयसूची

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; // या एक अपवाद फेंकें
}

प्रातिक्रिया दे

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *