C# Programming

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

Spread the love

C# में नामित स्थिरांकों के समुच्चय का प्रतिनिधित्व करने के लिए एनम एक बहुमूल्य उपकरण हैं। अक्सर, आपको किसी एनम मान के स्ट्रिंग निरूपण को उसके एनम समकक्ष में परिवर्तित करने की आवश्यकता होगी। यह लेख इस रूपांतरण को सुरक्षित और कुशलतापूर्वक करने के विभिन्न तरीकों का पता लगाता है।

विषयवस्तु की तालिका

Enum.Parse() और Enum.TryParse() का उपयोग करना

C# स्ट्रिंग-टू-एनम रूपांतरण के लिए दो प्राथमिक विधियाँ प्रदान करता है: Enum.Parse() और Enum.TryParse()Enum.Parse() सरल है लेकिन यदि इनपुट स्ट्रिंग किसी परिभाषित एनम मान से मेल नहीं खाती है तो एक अपवाद उत्पन्न करता है। Enum.TryParse() एक सुरक्षित विकल्प प्रदान करता है, सफलता या विफलता का संकेत देने वाला एक बूलियन देता है।

Enum.Parse() उदाहरण:


public enum DaysOfWeek
{
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday,
    Sunday
}

public static DaysOfWeek ParseDay(string dayString)
{
    return (DaysOfWeek)Enum.Parse(typeof(DaysOfWeek), dayString, true); //केस अनदेखा करने के लिए true
}

Enum.TryParse() उदाहरण:


public static bool TryParseDay(string dayString, out DaysOfWeek day)
{
    return Enum.TryParse(dayString, true, out day); //केस अनदेखा करने के लिए true
}

Enum.TryParse() अपवादों से बचाता है, जिससे यह उपयोगकर्ता इनपुट या बाहरी डेटा को संभालने के लिए बेहतर होता है जहाँ अमान्य मान संभव हैं।

Enum.Parse() के साथ अपवाद हैंडलिंग

भले ही Enum.TryParse() की सिफारिश की जाती है, लेकिन Enum.Parse() के साथ अपवाद हैंडलिंग को समझना महत्वपूर्ण है। एक try-catch ब्लॉक संभावित ArgumentException को सुचारू रूप से प्रबंधित कर सकता है:


public static DaysOfWeek ParseDayWithExceptionHandling(string dayString)
{
    try
    {
        return (DaysOfWeek)Enum.Parse(typeof(DaysOfWeek), dayString, true); //केस अनदेखा करने के लिए true
    }
    catch (ArgumentException ex)
    {
        Console.WriteLine($" '{dayString}' पार्स करते समय त्रुटि: {ex.Message}");
        // त्रुटि को उचित रूप से संभालें, उदाहरण के लिए, एक डिफ़ॉल्ट मान लौटाएँ या एक कस्टम अपवाद उत्पन्न करें।
        return DaysOfWeek.Monday; // या एक कस्टम अपवाद उत्पन्न करें
    }
}

Enum.IsDefined() के साथ मान्य एनम मानों की जाँच करना

पार्स करने से पहले, यह सत्यापित करना बुद्धिमानी है कि क्या इनपुट स्ट्रिंग Enum.IsDefined() का उपयोग करके एक मान्य एनम मान से मेल खाता है। यह कोड मजबूती में सुधार करता है और अनावश्यक अपवादों को रोकता है:


public static bool IsValidDay(string dayString)
{
    return Enum.IsDefined(typeof(DaysOfWeek), dayString);
}

उत्तम अभ्यास और सिफारिशें

अधिकांश परिदृश्यों के लिए, इसकी अपवाद-सुरक्षित प्रकृति के कारण Enum.TryParse() अनुशंसित दृष्टिकोण है। पार्सिंग से पहले उन्नत सत्यापन के लिए इसे Enum.IsDefined() के साथ मिलाएँ। मजबूत और उपयोगकर्ता के अनुकूल अनुप्रयोग बनाने के लिए हमेशा संभावित त्रुटियों को सुचारू रूप से संभालें। असफल रूपांतरणों को प्रभावी ढंग से प्रबंधित करने के लिए डिफ़ॉल्ट मान का उपयोग करने या कस्टम अपवाद उत्पन्न करने पर विचार करें।

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

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