यह C # 7 की एक नई विशेषता है, जो पैटर्न मिलान के साथ संयोजन में अक्सर उपयोग की जाने वाली एक बहुत अच्छी सुविधा है। यह सुविधा, और कई और अधिक, C # 7.0 में C # टीम ब्लॉग व्हाट्स न्यू में घोषित किए गए हैं ।
टीम जिस चीज को हासिल करने की कोशिश करती है, वह है अधिक तरल पदार्थ कोड। क्या आपको कुछ ऐसे मामले याद हैं, जहां बिना किसी उपयोग के बहुत से लंबे समय तक वेरिएबल की सूची बहुत लंबी होती जा रही है। बस एक त्वरित उदाहरण:
int i;
Guid g;
DateTime d;
if (int.TryParse(o, out i)) { /*use i*/ }
else if (Guid.TryParse(o, out g)) { /*use g*/ }
else if (DateTime.TryParse(o, out d)) { /*use d*/ }
समस्या देखें? यह बेकार है उन सभी चर वहाँ बैठे कुछ भी नहीं कर रहे हैं। सी # 7 का उपयोग करके लाइनों की संख्या को आधे में काटा जा सकता है:
if (int.TryParse(o, out int i)) { /*use i*/ }
else if (Guid.TryParse(o, out Guid g)) { /*use g*/ }
else if (DateTime.TryParse(o, out DateTime d)) { /*use d*/ }
न केवल लाइनों की संख्या कम से कम होती है, बल्कि उन क्षेत्रों में चर की कोई अनावश्यक सूची भी नहीं होती है जहां आप उन्हें नहीं रखना चाहते हैं। यह आपको एक वैरिएबल का उपयोग करने से रोकता है जिसका आपने उपयोग करने का इरादा नहीं किया था, लेकिन जो अब आपको दिखाई दे रहा है।
यह फीचर switch
स्टेटमेंट में पैटर्न मिलान के साथ भी उपयोगी है , जैसे कि इस कोड में (जो उपरोक्त कोड की तुलना में एक अलग व्यवहार है!)।
switch (o)
{
case int i: { /*use i*/ break; }
case Guid g: { /*use g*/ break; }
case DateTime d: { /*use d*/ break; }
}