C# Programming

C# स्विच स्टेटमेंट्स में स्ट्रिंग तुलना में महारत

Spread the love

विषय-सूची

स्विच स्टेटमेंट्स को समझना

switch स्टेटमेंट एक अभिव्यक्ति के मान के आधार पर निष्पादन के लिए एक कोड ब्लॉक का चयन करने का एक संरचित तरीका प्रदान करता है। कई संभावित मानों से निपटने के दौरान यह लंबी if-else if श्रृंखलाओं का एक अधिक कुशल विकल्प है। मूल सिंटैक्स है:


switch (expression)
{
    case value1:
        // यदि expression == value1 है तो निष्पादित करने के लिए कोड
        break;
    case value2:
        // यदि expression == value2 है तो निष्पादित करने के लिए कोड
        break;
    default:
        // यदि कोई भी केस मेल नहीं खाता है तो निष्पादित करने के लिए कोड
        break;
}

break स्टेटमेंट आवश्यक है; यह बाद के मामलों में “फॉलथ्रू” को रोकता है। इसके बिना, वर्तमान केस मेल खाता होने पर भी निष्पादन अगले केस पर जारी रहता है।

C# स्विच स्टेटमेंट्स में स्ट्रिंग्स का उपयोग करना

C# 8 से पहले, switch स्टेटमेंट्स में स्ट्रिंग्स का उपयोग करने के लिए बोझिल उपायों की आवश्यकता होती थी। C# 8 ने पैटर्न मिलान पेश किया, जिससे switch स्टेटमेंट्स के भीतर प्रत्यक्ष स्ट्रिंग तुलनाएं सक्षम हुईं, जिससे कोड की पठनीयता और रखरखाव में काफी वृद्धि हुई।


string day = "Monday";

switch (day)
{
    case "Monday":
        Console.WriteLine("कार्य सप्ताह की शुरुआत!");
        break;
    case "Tuesday":
    case "Wednesday":
    case "Thursday":
        Console.WriteLine("सप्ताह के मध्य की भागदौड़!");
        break;
    case "Friday":
        Console.WriteLine("सप्ताहांत लगभग आ गया!");
        break;
    case "Saturday":
    case "Sunday":
        Console.WriteLine("सप्ताहांत का समय!");
        break;
    default:
        Console.WriteLine("अमान्य दिन दर्ज किया गया।");
        break;
}

यह उदाहरण दर्शाता है कि विभिन्न स्ट्रिंग मानों को कुशलतापूर्वक कैसे संभाला जाए। नेस्टेड if स्टेटमेंट के बिना कई मामलों को समूहीकृत करने की क्षमता पर ध्यान दें।

केस संवेदनशीलता

C# के switch स्टेटमेंट्स में स्ट्रिंग तुलनाएं केस-संवेदनशील होती हैं। केस-असंवेदनशील तुलनाओं के लिए, तुलना से पहले स्ट्रिंग को लोअरकेस (या अपरकेस) में बदलें:


string day = "monday"; 

switch (day.ToLower()) 
{
    case "monday":
        Console.WriteLine("कार्य सप्ताह की शुरुआत!");
        break;
    // ... अन्य केस ...
}

बेहतर पठनीयता के लिए स्विच एक्सप्रेशन

C# 8 ने स्विच एक्सप्रेशन भी पेश किए, जो अधिक कॉम्पैक्ट सिंटैक्स प्रदान करते हैं। पिछला उदाहरण बन जाता है:


string day = "Monday";
string message = day switch
{
    "Monday" => "कार्य सप्ताह की शुरुआत!",
    "Tuesday", "Wednesday", "Thursday" => "सप्ताह के मध्य की भागदौड़!",
    "Friday" => "सप्ताहांत लगभग आ गया!",
    "Saturday", "Sunday" => "सप्ताहांत का समय!",
    _ => "अमान्य दिन दर्ज किया गया।" 
};

Console.WriteLine(message);

स्विच एक्सप्रेशन को आम तौर पर उनकी संक्षिप्तता और बेहतर पठनीयता के लिए पसंद किया जाता है, खासकर कई मामलों में।

निष्कर्ष

C# 8 का पैटर्न मिलान switch स्टेटमेंट्स में स्ट्रिंग्स का उपयोग करना सरल बनाता है, पुराने if-else if दृष्टिकोणों की तुलना में कोड की पठनीयता और रखरखाव में सुधार करता है। केस संवेदनशीलता याद रखें और अधिक सुंदर कोड के लिए स्विच एक्सप्रेशन का उपयोग करने पर विचार करें।

अक्सर पूछे जाने वाले प्रश्न

  • प्रश्न: क्या स्विच स्टेटमेंट्स में स्ट्रिंग्स के लिए लंबाई की कोई सीमा है? उत्तर: नहीं, कोई अंतर्निहित सीमा नहीं है। बहुत लंबी स्ट्रिंग्स का मामूली प्रदर्शन प्रभाव हो सकता है, लेकिन यह आमतौर पर नगण्य होता है।
  • प्रश्न: अगर मैं break स्टेटमेंट को छोड़ देता हूँ तो क्या होता है? उत्तर: फॉलथ्रू होता है; निष्पादन अगले केस पर जारी रहता है, जिससे अप्रत्याशित व्यवहार हो सकता है। हमेशा break स्टेटमेंट शामिल करें (या स्विच एक्सप्रेशन का उपयोग करें)।
  • प्रश्न: क्या स्विच एक्सप्रेशन हमेशा तेज होते हैं? उत्तर: प्रदर्शन का अंतर आमतौर पर नगण्य होता है। पठनीयता और रखरखाव को प्राथमिकता दें; स्विच एक्सप्रेशन अक्सर स्पष्ट कोड की ओर ले जाते हैं।

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

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