पता लगाएं कि आने वाले परिवर्तन आपके कोड में कैसे सुधार करेंगे और एक डेवलपर के रूप में आपका जीवन थोड़ा और आसान बना देंगे।

बहुप्रतीक्षित C# 12 पूर्वावलोकन का विवरण लीक हो गया है, जो आगामी सुविधाओं की एक झलक देता है जो भाषा में क्रांति ला देंगी। ये सुविधाएँ कोड पठनीयता में सुधार, प्रदर्शन को अनुकूलित करने और भाषा की उन्नत क्षमताओं को अनलॉक करने का बड़ा वादा करती हैं।

बेहतर स्विच अभिव्यक्तियाँ

सी#8 पेश किया गया बुनियादी स्विच अभिव्यक्तियाँ जो आपको जटिल सशर्त तर्क को संक्षिप्त रूप से, पठनीय रूप में व्यक्त करने देता है। C# 12 स्विच एक्सप्रेशन के लिए एक नया पैटर्न-मिलान सिंटैक्स पेश करके इसे और आगे ले जाता है, जिससे अभिव्यंजक और संक्षिप्त कोड लिखना और भी आसान हो जाता है।

निम्नलिखित कोड स्निपेट पर विचार करें.

वर परिणाम = ओबीजे बदलना
{
int यहाँ मैं कब मैं > 0 => "सकारात्मक",
int यहाँ मैं कब मैं < 0 => "नकारात्मक",
_ => "शून्य"
};

यह कोड यह निर्धारित करने के लिए स्विच एक्सप्रेशन का उपयोग करता है कि कोई पूर्णांक है या नहीं सकारात्मक, नकारात्मक, या शून्य. C# 12 में, आप नए पैटर्न-मिलान सिंटैक्स का उपयोग करके इस कोड को और भी सरल बना सकते हैं:

instagram viewer
वर परिणाम = ओबीजे बदलना
{
> 0 => "सकारात्मक",
< 0 => "नकारात्मक",
_ => "शून्य"
};

यह सिंटैक्स आपको इसे छोड़ने की अनुमति देता है कब कीवर्ड और स्विच एक्सप्रेशन में सीधे रिलेशनल ऑपरेटर्स का उपयोग करें।

कक्षाओं और संरचनाओं के लिए प्राथमिक कंस्ट्रक्टर

अब आप किसी में भी प्राथमिक कंस्ट्रक्टर बना सकते हैं कक्षा या संरचना (एक हल्का वर्ग विकल्प). प्राथमिक कंस्ट्रक्टर का उपयोग करके, आप क्लास घोषणा में पैरामीटर जोड़ सकते हैं और क्लास बॉडी के अंदर इन मानों का उपयोग कर सकते हैं।

C# 9 ने रिकॉर्ड के लिए स्थितीय सिंटैक्स के भाग के रूप में प्राथमिक कंस्ट्रक्टर पेश किए। C# 12 इन्हें सभी संरचनाओं और वर्गों तक विस्तारित करता है।

आप कोष्ठक में प्रकार के नाम के बाद पैरामीटर डाल सकते हैं जैसा कि नीचे दिखाया गया है:

जनता कक्षा विद्यार्थी(int यहाँ पहचान, डोरी नाम, IEnumerable<दशमलव> ग्रेड)
{
जनताविद्यार्थी(int यहाँ पहचान, डोरी नाम): यह(आईडी, नाम, गणना योग्य। ख़ाली<दशमलव>()) { }
जनताint यहाँ आईडी => आईडी;
जनताडोरी नाम { पाना; तय करना; } = नाम. काट-छांट करना();
जनतादशमलव जीपीए => ग्रेड। कोई भी()? ग्रेड. औसत(): 4.0एम;
}

प्राथमिक कंस्ट्रक्टर के पैरामीटर घोषणा प्रकार के संपूर्ण निकाय में दायरे में होते हैं। आप गुण या फ़ील्ड सेट कर सकते हैं या उन्हें विधियों या स्थानीय कार्यों में चर के रूप में भी उपयोग कर सकते हैं। आप ये पैरामीटर बेस कंस्ट्रक्टर को भी प्रदान कर सकते हैं।

इंटरपोलेटेड स्ट्रिंग्स सुधार

इंटरपोलेटेड स्ट्रिंग्स C# 6 के बाद से अस्तित्व में हैं। C# 12 में, अब आप जटिल अभिव्यक्तियों का उपयोग करके स्ट्रिंग्स के लिए गतिशील मान बना सकते हैं।

int यहाँ मैं = 5;
डोरी आउटपुट = $"i का मान है {मैं}, और इसका वर्ग है {मैं*मैं}.";
सांत्वना देना। राइटलाइन (आउटपुट);

यह कोड "i का मान 5 है, और इसका वर्ग 25 है" प्रिंट करता है।

अतिरिक्त प्रकारों के लिए निर्देशों का उपयोग करना

C# 12 के साथ, आप केवल नामित प्रकारों के लिए ही नहीं, बल्कि किसी भी प्रकार को उपनाम देने के लिए उपनाम निर्देश का उपयोग कर सकते हैं। आप टुपल्स, एरेज़, पॉइंटर्स या अन्य असुरक्षित प्रकारों के लिए सिमेंटिक उपनाम बना सकते हैं।

कुछ उदाहरण निम्नलिखित हैं:

का उपयोग करते हुए माप = (डोरी इकाइयाँ, int यहाँ दूरी);
का उपयोग करते हुए यूनिट्सइंट = int यहाँ?;
उपनाम उपयोग उदाहरण:
जनताखालीपनगणना(मापन माप)
{
// विधि निकाय
}

लैम्ब्डा अभिव्यक्ति सुधार

C# 12 आपको मापदंडों के लिए डिफ़ॉल्ट मानों को परिभाषित करने की अनुमति देकर लैम्ब्डा अभिव्यक्तियों को सशक्त बनाता है। सिंटैक्स अन्य डिफ़ॉल्ट पैरामीटर के समान है:

उदाहरण के लिए, (इंट इंक्रीमेंटटू = 5) => इंक्रीमेंटटू + 1 इन्क्रीमेंटटू पैरामीटर के लिए 5 का डिफ़ॉल्ट मान सेट करता है, जिसे लैम्ब्डा कॉल उपयोग करेगा यदि आप इसे कोई मान नहीं देते हैं।

वर इन्क्रीमेंटविथडिफॉल्ट = (int यहाँ इंक्रीमेंटटू = 5) => वृद्धि + तक 1;
इन्क्रीमेंटविथडिफॉल्ट(); // 6
इन्क्रीमेंटविथडिफॉल्ट(9); // 10

इसके अलावा, लैम्ब्डा अभिव्यक्तियों को और अधिक प्रभावी बनाने के लिए उनमें कई अन्य संवर्द्धन आए।

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

  • अब आप लैम्ब्डा फ़ंक्शंस के भीतर अधिक जटिल अभिव्यक्तियाँ बना सकते हैं।
  • अब आप लैम्ब्डा अभिव्यक्तियों को अभिव्यक्ति पेड़ों में बदल सकते हैं जो जटिल प्रश्नों को सरल बनाते हैं और प्रदर्शन को अनुकूलित करते हैं।

एसिंक धाराएँ

आप नए के साथ अतुल्यकालिक डेटा स्रोतों के माध्यम से पुनरावृति कर सकते हैं एसिंक धाराएँ C# 12 की विशेषता. यह नया पुनरावर्तक-foreach का इंतजार करें- आपको एसिंक डेटा के एक सेट पर पुनरावृति करने में मदद करता है:

इंतजारप्रत्येक के लिए (वर वस्तु मेंGetItemsAsync())
{
सांत्वना देना। राइटलाइन (आइटम.कीमत);
}

सी#12: रोमांचक नई सुविधाओं के साथ कोड में क्रांति लाना

C# 12 की प्रत्याशा में, आप रोमांचक नई सुविधाओं के साथ गेम-चेंजिंग अपडेट की उम्मीद कर सकते हैं। ये प्रगति, जैसे उन्नत स्विच एक्सप्रेशन, प्राथमिक कंस्ट्रक्टर और लैम्ब्डा एक्सप्रेशन में सुधार, कोड सादगी, लचीलेपन और प्रदर्शन पर एक मजबूत फोकस का संकेत देते हैं।

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