"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > क्या पैटर्न C#में पारंपरिक प्रकार-आधारित स्विचिंग के लिए एक बेहतर विकल्प से मेल खाता है?

क्या पैटर्न C#में पारंपरिक प्रकार-आधारित स्विचिंग के लिए एक बेहतर विकल्प से मेल खाता है?

2025-03-23 ​​पर पोस्ट किया गया
ब्राउज़ करें:541

Is Pattern Matching a Superior Alternative to Traditional Type-Based Switching in C#?

]

] हालांकि, जैसे -जैसे इसमें शामिल प्रकारों की संख्या बढ़ती है, यह दृष्टिकोण लंबा और नाजुक हो जाता है। ] ] "केस टाइप" सिंटैक्स चर के प्रकारों से मेल खाने की अनुमति देता है, प्रभावी रूप से "IF" स्टेटमेंट को एक विशिष्ट पैटर्न के मामले के साथ बदल देता है।

उदाहरण के लिए:

शून्य फू (ऑब्जेक्ट ओ) { स्विच (ओ) { केस ए: // मैच टाइप ए a.hop (); तोड़ना; केस बी बी: ​​// मैच बी प्रकार b.skip (); तोड़ना; गलती करना: नया तर्क एक्ससेप्शन फेंक दें ("दुर्घटना प्रकार:" O.Gettype ()); } }

] ] जबकि पैटर्न मिलान के रूप में संक्षिप्त नहीं है, यह हार्ड-कोडेड प्रकार के नामों से बचने के लिए एक आसान विकल्प प्रदान करता है।

शून्य फू (ऑब्जेक्ट ओ) { स्विच (o.gettype ()। नाम) { केस नेमोफ़ (ए): // हैंडल टाइप ए तोड़ना; केस नेमोफ़ (बी): // हैंडल टाइप बी तोड़ना; गलती करना: // अन्य प्रकारों को संभालें तोड़ना; } }

void Foo(object o)
{
    switch (o)
    {
        case A a:    // 匹配A类型
            a.Hop();
            break;
        case B b:    // 匹配B类型
            b.Skip();
            break;
        default:
            throw new ArgumentException("意外类型: "   o.GetType());
    }
}
शून्य फू (ऑब्जेक्ट ओ) { if (o a) { // हैंडल टाइप ए } और अगर (ओ बी है) { // हैंडल टाइप बी } अन्य { // अन्य प्रकारों को संभालें } }

निष्कर्ष के तौर पर

] यह सशर्त श्रृंखलाओं की आवश्यकता को समाप्त करता है, कोड पठनीयता में सुधार करता है, और त्रुटियों की संभावना को कम करता है। C#के पहले संस्करणों के लिए, NameOf () और स्विच स्टेटमेंट का उपयोग करके हार्ड-कोडेड प्रकार के नामों की तुलना में अधिक लचीला विकल्प प्रदान किया गया, जबकि क्लासिक "इफ ... वरना ... और" संरचना अभी भी एक कम आदर्श है लेकिन अभी भी व्यवहार्य विकल्प है।
            
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3