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